Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
468028.rtf
Скачиваний:
4
Добавлен:
09.11.2019
Размер:
701.39 Кб
Скачать

Контрольные вопросы и задания.

1. Назовите строковые команды, выполняемые текстовым редактором, которые могут быть реализованы на языке ассемблера.

. Напишите процедуру (фрагмент программы) для копирования данных из одной области памяти в другую. Предусмотреть вывод данных до копирования, и после копирования.

. Реализуете процедуру копирования данных с использованием команд MOVSB и MOVSW.

. Реализуете процедуру копирования данных по убыванию адресов.

. Реализуете процедуру копирования данных без использованием цепочечных команд копирования.

. Выясните, что будет, если в SI поместить смещение строки dst, а в DI строки src.

. Можно ли вместо префикса REP использовать другой, например REPE. Если, да, то почему.

. Имеется следующее определение данных:

SEGMENT PARA

CONAME DB ‘SPACE EXPLORES INC.’

PRLINE DB 20 DUP (» ‘)

Используя цепочечные команды, выполните (запишите фрагмент программы):

a). Пересылку данных из CONAME в PRLINE слева направо.

b). Пересылку данных из CONAME в PRLINE справа налево.). Загрузку третьего и четвертого байта области CONAME в регистр AX.). Сохранение содержимого регистра AX по адресу PRLINE + 5). Сравнение данных в областях CONAME и PRLINE.). Сканирование области CONAME и поиск в ней символов «пробел». Если символ найден, то переслать его в регистр BH.

. Сравнить командой cmps две цепочки байт в памяти string1 и string2 и поместить первый несовпавший байт из string2 в регистр al. Для загрузки этого байта в регистр-аккумулятор al использовать команду lods.

. Процедуры в языке Ассемблера

команда ассемблер подпрограмма строка

Цель: изучение приемов программирования на языке Ассемблера с использованием подпрограмм, выработка навыков работы с командами вызова подпрограмм, возврата из подпрограммы.

Задачи:

 изучить механизм работы команды вызова подпрограммы CALL, возврата из подпрограммы RET, правила оформления подпрограмм;

 получить практические навыки по созданию подпрограмм на языке Ассемблера.

Команды работы подпрограммы.

В языке ассемблера подпрограмма оформляется в виде процедур. Для объявления процедур в одномодульных, простых программах можно использовать упрощенный вариант синтаксиса:

<имя> PROC <тип>

<тело процедуры>

RET

<имя> ENDP

где PROC - директива, определяющая начало процедуры, <имя> - метка, служащая именем процедуры и задающая адрес точки входа в процедуру; <тип> - параметр, определяющий тип процедуры и может принимать два значения: near (ближний) и far (дальний). Если используется упрощенные формы определения сегментов, то тип процедуры задается выбранной моделью памяти и его можно не указывать. Для моделей tiny, small и compact определяется тип near, а для остальных - far; RET (Return) - последняя команда подпрограммы. Она осуществляет выход из подпрограммы и возврат в основную программу. Тип процедуры автоматически задает тип возврата из процедуры.

Вызов подпрограммы из основной программы осуществляется командой CALL (), которая имеет следующий синтаксис:

CALL <тип> <имя>

где <тип> - параметр, определяющий тип перехода и может принимать значения near или far; <имя> - имя вызываемой процедуры.

Когда команда CALL вызывает процедуру, и сохраняет в стек адрес следующей за CALL команды. При ближнем вызове в стек помещается значение регистра IP, а при дальнем вызове - значение регистров CS и IP. После выполнения в процедуре команды RET - выполняется обратное действие.

Фрагмент программы вызова процедур

; фрагмент кода программы

main PROC

MOV AX, @data DS, AX MySub

… AX, 4C00h 21 ENDP

MySub PROC

… ENDP

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]