Задание № 2.3. Изучение файла листинга

Получите файл листинга task_21.lst. Просмотрите его

Задание № 2.4.Создать программу, запрашивающую имя пользователя и приветствующую его.

Задание № 2.5.Составить программу, выводящую на экран символ, следующий за нажатым (нажатый символ не отображается на экране).

Задание № 2.6.Составить программу, позволяющую ввести букву и преобразовать ее: если это заглавная, то перевести ее в строчную и наоборот.

Замечание. Для выполнения заданий 2.4 – 2.6 вам потребуется использовать ввод с клавиатуры и вывод сообщений на экран. Эти стандартные действия в языке Ассемблера реализуются следующим образом.

1. Вывод на экран:

MOV DX, OFFSET mes ; установить в DX адрес переменной mes

MOV AH, 09h ; функция DOS вывода строки

INT 21h ; вывод строки на экран

2. Ввод с клавиатуры:

1-й способ – вводимый символ отображается на экране, а код нажатой клавиши возвращается функцией в регистр AL:

MOV AH, 01h ; функция ввода одиночного символа

INT 21h ; прерывание

2-й способ – ввод строки символов

Buf DB 20 DUP (?)

LEA AL, Buf; загрузка регистра AL адресом область памяти

MOV AH, 0Аh ; функция ввода строки с эхом

INT 21h ; прерывание

3-й способ – ввод символа без эха

MOV AH, 08h ; функция ввода без отображения символа

INT 21h ; прерывание

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

1. Дан фрагмент описания констант и данных. Какие значения получат переменные A и B?

K = 1

N EQU K

A DW N

K = 2

B DW N

2. Дан фрагмент описания констант и данных. Какие значения получат переменные C и D?

K = 1

N EQU K + 10

C DW N

K = 2

D DW N

3. Опишите формат записи строки программы на языке ассемблера.

4. Укажите отличие между директивой и командой в языке ассемблера.

5. Назначение и пример использования директивы EQU.

6. Назначение и пример использования директивы «=».

7. Формат и особенности использования директивы определения сегментов.

8. Директива ASSUME. Пример использования.

9. Упрощенные директивы описания сегментов и их использование в программе.

10. Простые типы данных, используемые микропроцессором аппаратно.

11. Логическая интерпретация простых типов данных.

12. Директивы резервирования и инициализации простых типов данных.

13. Перечислите и опишите компоненты программы.

14. Опишите образ памяти .com программы.

15. Опишите образ памяти .exe программы.

16. Сформулируйте особенности .com файлов.

17. Охарактеризуйте префикс программного сегмента PSP.

18. Инициализация сегментных регистров, указателя стека, счетчика команд после загрузки com-программы.

19. Инициализация сегментных регистров, указателя стека, счетчика команд после загрузки exe-программы.

20. Из каких полей состоит строка программы на ассемблере?

21. Назначение директив stack, dataseg и codeseg.

22. Назначение директив db, dw.

23. Назначение оператора dup в директивах db, dw.

24. Назначение директивы end.

25. Сравните и проанализируйте стандартный и упрощенный формат записи программы .exe. Объясните отличия.

26. Сравните и проанализируйте стандартный и упрощенный формат записи программы .com. Объясните отличия.


Наши рекомендации