
Лабораторная работа №5
Задание 1.
Выполните арифметические действия над шестнадцатеричными числами.
Сложение:
D2CF+A8. Занесем в регистры значения с помощью инструкции отладчика -r: AX=D2CF, BX=00A8. Занесем (-e) и выполним команду ADD AX,BX (код 01D8) с помощью инструкции –t. Получим результат: AX=D377
Аналогично выполняются другие операции, результат проверяется в соответствующих регистрах:
2135+AF12= D047
BCAD-3124=8B89
4561-345A=1107
FAx35=33C2
FFxFF=FE01
2346/AC=0034 остаток=0056
EDFA/AD =0160 остаток= 001A
Задание 2.
Используя прерывание 21, выведите на экран символы F, 3, d, 9, >,(.
Чтобы вывести приведенные символы на экран, надо воспользоваться макрокомандой int 21, в РОН:
AH=02h - номер прерывания,
DL - ASCII-код символа.
В таблице приведены коды заданных символов:
Символ |
F |
3 |
d |
9 |
> |
( |
ASCII-код |
46 |
33 |
64 |
39 |
3E |
28 |
Используя инструкции –rax и –rdx и вводя соответствующие значения, а затем выполняя макрокоманду int 21 на экран будут выводится данные символы.
Задание 3.
Введите в память начиная со смещения 100 программу из 2 строк, которая выведет на экран символ A и завершит выполнение инструкцией INT 20.
Перед выполнением программы необходимо занести в регистры значения: AX=0200, DX=0041 (ASCII-код символа А – 41h)
Результат дезассемблирования:
-u 100
0B86:0100 CD21 INT 21
0B86:0102 CD20 INT 20
...
Программа выполняется командой -g104
Задание 4.
Введите начиная с адреса 100 программу вывода на экран символа D:
INT 21
INT 20
см. «Задание 3». AX=0200, DX=0044 (ASCII-код символа D - 44h)
-u 100
0B86:0100 CD21 INT 21
0B86:0102 CD20 INT 20
...
Задание 5.
Составьте и введите в память начиная со смещения 100 программу, которая загрузит в регистры соответствующие коды и выведет на экран символ @, после чего завершит выполнение и передаст управление отладчику.
Нужные значения в регистры заносятся с помощью команды mov. Результат деассемблирования:
-u 100
0B86:0100 B402 MOV AH,02
0B86:0102 B240 MOV DL,40
0B86:0104 CD21 INT 21
0B86:0106 CD20 INT 20
...
Задание 6.
Запишите на диск в файл ch.com программу вывода на экран символа @.
Указание имени файла:
-n ch.com
Занесем в сх количество байт программы: сх=8, при этом bx=0
Запись в файл:
-w
Файл ch.com прилагается к отчету.
Задание 7
Введите строку символов «Hello, Dolly!$» в память, начиная с со смещения 200, введите в память начиная со смещения 100 программу, которая загрузит в регистры коды прерывания 21 09, адрес строки в памяти (200). Запишите программу в файл str.com
Введем данные строки, начиная со смещения 200, затем проверим правильность командой:
-d 200
0B86:0200 48 65 6C 6C 6F 2C 20 44-6F 6C 6C 79 21 24 79 21 Hello, Dolly!$y!
Программа, выводящая строку по смещению 200:
-a100
0B86:0100 mov dx,0200
0B86:0103 mov ah,9
0B86:0105 int 21
0B86:0107 int 20
0B86:0109
-g109
Hello, Dolly!
Файл str.com прилагается к отчету.