"Ассемблер и программирование для IBM PC. (IBM PC assembler language and programming)" - читать интересную книгу автора (Абель Питер, Переводчик: Ю.В.Сальников)

-T

AX=0148 BX=0290 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13C6 ES=13C6 SS=13C6 CS=13C6 IP=010A NV UP EI PL NZ AC PO NC
13C6:010A 8BCB MOV CX,BX
-T

AX=0148 BX=0290 CX=0290 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13C6 ES=13C6 SS=13C6 CS=13C6 IP=010C NV UP EI PL NZ AC PO NC
13C6:010C 2BC8 SUB CX,AX
-T

AX=0148 BX=0290 CX=0148 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13C6 ES=13C6 SS=13C6 CS=13C6 IP=0100 NV UP EI PL NZ AC PO NC
13C6:010E 2BC0 SUB AX,AX
-T

AX=0000 BX=0290 CX=0148 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13C6 ES=13C6 SS=13C6 CS=13C6 IP=0110 NV UP EI PL ZR NA PO NC
13C6:0110 90 NOP
-T

AX=0000 BX=0290 CX=0148 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13C6 ES=13C6 SS=13C6 CS=13C6 IP=0111 NV UP EI PL ZR NA PO NC
13C6:0111 CB RETF
-
__________________________________________________________________________

Рис.2.1. Трассировка машинных команд.


Команда R показывает также по смешению 0100 первую выполняемую
машинную команду. Регистр CS на рис.2.1 содержит значение CS=13C6 (на
разных компьютерах оно может различаться), а машинная команда выглядит
следующим образом:

13C6:0100 B82301 MOV AX,0123

CS=13C6 обозначает, что начало сегментов кода находится по
смещению 13C6 или точнее 13C60. Значение 13C6:0100 обозначает 100
(шест.) байтов от начального адреса 13C6 в регистре CS.
B82301 - машинная команда, введенная по адресу CS:100.
MOV AX,0123 - ассемблерный мнемонический код, соответствующий
введенной машинной команде. Это есть результат операции
дисассемблирования, которую обеспечивает отладчик для более простого
понимания машинных команд. В последующих главах мы будем кодировать
программы исключительно в командах ассемблера. Рассматриваемая в
данном случае команда обозначает пересылку непосредственного значения
в регистр AX.