Вариант 07 Лаба 05 |
200,00 ₽
Просмотров: 787
|
Тип работы: | Контрольная |
Название предмета: | Основы системного программирования |
Тема/вариант: | Вариант 07 Лаба 05 |
Объем работы: | 5 |
ВУЗ: | СибГУТИ |
Дата выполнения: | 2013-08-12 |
Размер файла, тип файла: | 19.41 Kb, RAR |
Прикрепленные файлы: |
Курс 170 Основы системного программирования (952 Kb)
|
Тема: Работа со строками. Использование функций DOS
Цель работы: Научиться использовать функции DOS для ввода и вывода строковой информации.
Порядок выполнения работы:
ВАЖНО: Прочитайте требования к выполнению и оформлению лабораторных работ.
Задание 1Вариант 7
1. Изучите приведенную ниже программу на языке ассемблера. Программа позволяет ввести строку с клавиатуры и определить сколько заданных символов содержится в ней. Программа подсчитывает количество единиц в заданном байте и результат заносит в регистр DX.
TITLE Program5 ;названиепрограммы
.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 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
2. Выполните отладку программу. Чему равно значение DX перед выходом из программы?
Задание 2
Используя предложенную выше программу, разработайте программу, которая выполняет заданные действия. Исполнить программу с несколькими (три - четыре) строками, проверить правильность результатов. (В отчете обязательно привести результаты вычислений).
Номер задания выбирается в соответствии с последней цифрой пароля.
1. Ввести с клавиатуры строку. Получить новую строку удалением пробелов и знаков табуляции. Вывестиполученнуюстрокунаэкран.
2. Ввести с клавиатуры строку (использовать только латинские символы). Получить новую строку преобразованием всех малых букв в большие. Вывести полученную строку на экран.
3. Ввести с клавиатуры строку. Посчитать количество слов в строке. Вывести полученное число на экран. Предполагается, что слова отделяются друг от друга пробелами. Между словами может более одного пробела.
4. Ввести с клавиатуры строку. Ввести с клавиатуры коротенькую строку - шаблон. Найти шаблон во введенной строке. Вывести на экран “ДА”, если шаблон есть и “НЕТ”, если нет.
5. Ввести с клавиатуры две строки. Сравнить их. Вывести на экран “ДА”, если они совпадают и “НЕТ”, если не совпадают.
6. Ввести с клавиатуры строку, состоящую из нескольких слов. Вывести каждое слово на экран в отдельной строке, т.е. выдать слова в столбик.
7. Ввести с клавиатуры строку. Переставить в ней символы, поменяв местами первый символ с последним, второй с предпоследним и т.д. Вывести полученную строку на экран. Например, если введена строка ПОГОДА, то преобразованная строка имеет вид АДОГОП
8. Ввести с клавиатуры две строки. Сравнить их. Если вторая строка содержится в первой, то вывести на экран номер начала второй строки в первой. В противном случае вывести 0. Например, для строк ПОБЕДА и ОБЕД, следует вывести 2.
9. Ввести с клавиатуры строку, содержащую несколько точек. Преобразовать строку, так чтобы после каждой точки был пробел. Вывестиполученнуюстрокунаэкран.
10. Ввести с клавиатуры строку, содержащую несколько точек и латинские символы. Преобразовать строку, так чтобы после каждой точки следующая буква была заглавной. Вывестиполученнуюстрокунаэкран.
Сообщить другу