Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TONIC.DOC
Скачиваний:
0
Добавлен:
19.09.2019
Размер:
74.75 Кб
Скачать

2702:0315 Fec0 inc al ;длину результата.

2702:0317 A20006 MOV [0600],AL;

2702:031A C3 RET

5. Результаты трассирования введенной в эвм программы

Начальное состояние флагов.

OF DF IF SF ZF AF PF CF

0 0 1 0 0 0 0 0

Производимое Рез-т Флаги

действие OF DF IF SF ZF AF PF CF

61 + 76 D7 1 0 1 1 0 0 1 0

76 + 65 DB 1 0 1 1 0 0 1 0

6F + 79 E8 1 0 1 1 0 1 1 0

72 + 73 E5 1 0 1 1 0 0 0 0

61 + 6F D0 1 0 1 1 0 1 0 0

6B + 67 D2 1 0 1 1 0 1 1 0

70 + 69 D9 1 0 1 1 0 0 0 0

65 + 72 D7 1 0 1 1 0 0 1 0

68 + 47 AF 1 0 1 1 0 0 1 0

43 + 0 43 1 0 1 0 0 0 0 0

Состояние памяти после выполнения программы.

DS:0300 0A 61 76 6F 72 61 6B 70 65 68 43

DS:0400 09 76 65 79 73 6F 67 69 72 47

DS:0500 0A D7 DB E8 E5 D0 D2 D9 D7 AF 43

6. Ошибок обнаружено не было.

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

1. Внутрисегментный переход

014C E9FD00 JMP 024C

В двоичной форме:

E9h=11101001 => Команда JMP disp {near}

Схема выполнения: IP:=(IP)+dispHL

FDh=11111101 dispL

00h=00000000 dispH

После выполнения этой команды IP=(смещение команды в сегменте)+ +(длина команды)+dispHL, т.е. IP:=014Ch+03h+00FDh=024Ch

2. Межсегментный переход

0277 FF2E0006 JMP Far [0600]

В двоичной форме:

FFh=11111111 => Команда JMP r/m {far} (т.к. в следующем

байте 3, 4, 5-й биты равны соответственно 1, 0, 1) Схема выполнения: CS:IP:=(r/m).

2Eh=00 101 110 md=00 и r/m=110 => адресация прямая, т.е.

md ~~~ r/m адрес перехода берется из

следующих 4-х байт

00h=00000000 \

} {disp} т.е. IP:=(0600h) CS:=(0602h)

06h=00000110 /

Форматы и схемы выполнения машинных команд программы замыкания цикла с внутрисегментным и межсегментным переходом.

1 Замыкание цикла с внутрисегментным переходом

0249 E9FAFE JMP 0146

......

0251 E2F6 LOOP 0249

В двоичной форме:

E2h=11100010 => Команда LOOP dispL

Схема выполнения: CX:=(CX)-1 если (CX)=0, то

IP:=(IP)+dispL

F6h=11110110 dispL в дополнительном коде, т.е. -8

После выполнения этой команды IP=(адрес команды)+dispL

т. е. IP:=0251h-08h=0249h.

Команда LOOP не может выполнить близкий переход, поэтому она должна ссылаться на команду JMP, которая и выполнит этот переход.

2 Замыкание цикла с межсегментным переходом

04FC FF2E0406 JMP Far [0604]

......

0505 E2F5 LOOP 04FC

Работает аналогично команде LOOP с близким переходом, только ссылается на команду JMP, которая выполняет межсегментный переход.

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