Скачиваний:
147
Добавлен:
11.02.2014
Размер:
108.03 Кб
Скачать

Лабораторная работа №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 прилагается к отчету.