Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

OSP / ОСП_2011 / Лабработа7 / Лабработа7

.doc
Скачиваний:
26
Добавлен:
11.04.2015
Размер:
60.42 Кб
Скачать

Основы системного программирования

Лабораторная работа 7

Тема: Работа со строками. Использование функций DOS

Цель работы: Научиться использовать функции DOS для ввода и вывода строковой информации.

Задание 1

  1. Изучите приведенную ниже программу на языке ассемблера. Программа позволяет ввести строку с клавиатуры и определить сколько заданных символов содержится в ней.

    TITLE Program7

    ;название программы

    .MODEL small

    ;отводим под стек и под данные по 64Кб

    .STACK 100h

    ;отмечаем начало сегмента стека

    .DATA

    ;отмечаем начало сегмента данных

    Char DB 0

    Buf DB 255, 0, 256 DUP (0)

    ;

    .CODE

    ;отмечаем начало сегмента кодов

    main PROC

    mov AX, @data

    ;копируем адрес

    mov DS, AX

    ;сегмента данных

    mov ES, AX

    mov DX, offset Buf

    ;считываем строку с клавиатуры

    mov AH, 0ah

    int 21h

    mov AL, Buf+1

    ;если считано 0 байт, то выход из

    or AL, AL

    ;программы

    jz Exit1

    mov AH, 01h

    ;считываем символ с клавиатуры

    int 21h

    mov Char, AL

    xor DX, DX

    mov CX, DX

    mov CL, Buf+1

    ;задаем количество повторений (длина строки)

    cld

    mov DI, offset Buf+2

    Cycle:

    scasb

    jne Next

    inc DX

    Next:

    loop Cycle

    Exit1:

    mov AX,4C00h

    ;выход

    int 21h

    ;из программы

    main ENDP

    END main

  2. Выполните отладку программу. Чему равно значение DX перед выходом из программы?

Задание 2

Используя предложенную выше программу, разработайте программу, которая выполняет заданные действия. Исполнить программу с несколькими (три - четыре) строками, проверить правильность результатов. (В отчете обязательно привести результаты вычислений).

Номер задания выбирается в соответствии с номером бригады.

  1. Ввести с клавиатуры строку. Получить новую строку удалением пробелов и знаков табуляции. Вывести полученную строку на экран.

  2. Ввести с клавиатуры строку (использовать только латинские символы). Получить новую строку преобразованием всех малых букв в большие. Вывести полученную строку на экран.

  3. Ввести с клавиатуры строку. Посчитать количество слов в строке. Вывести полученное число на экран. Предполагается, что слова отделяются друг от друга пробелами. Между словами может более одного пробела.

  4. Ввести с клавиатуры строку. Ввести с клавиатуры коротенькую строку - шаблон. Найти шаблон во введенной строке. Вывести на экран “ДА”, если шаблон есть и “НЕТ”, если нет.

  5. Ввести с клавиатуры две строки. Сравнить их. Вывести на экран “ДА”, если они совпадают и “НЕТ”, если не совпадают.

  6. Ввести с клавиатуры строку, состоящую из нескольких слов. Вывести каждое слово на экран в отдельной строке, т.е. выдать слова в столбик.

  7. Ввести с клавиатуры строку. Переставить в ней символы, поменяв местами первый символ с последним, второй с предпоследним и т.д. Вывести полученную строку на экран. Например, если введена строка ПОГОДА, то преобразованная строка имеет вид АДОГОП

  8. Ввести с клавиатуры две строки. Сравнить их. Если вторая строка содержится в первой, то вывести на экран номер начала второй строки в первой. В противном случае вывести 0. Например, для строк ПОБЕДА и ОБЕД, следует вывести 2.

  9. Ввести с клавиатуры строку, содержащую несколько точек. Преобразовать строку, так чтобы после каждой точки был пробел. Вывести полученную строку на экран.

  10. Ввести с клавиатуры строку, содержащую несколько точек и латинские символы. Преобразовать строку, так чтобы после каждой точки следующая буква была заглавной. Вывести полученную строку на экран.

Соседние файлы в папке Лабработа7