1DC3:0110 NOP
1DC3:0111 RET
1DC3:0112
-U 100,111
1DC3:0100 B82301 MOV AX,0123
1DC3:0103 052500 ADD AX,0025
1DC3:0106 8BD8 MOV BX,AX
1DC3:0108 01C3 ADD BX,AX
1DC3:010A 89D9 MOV CX,BX
1DC3:010C 29C1 SUB CX,AX
1DC3:010E 29C0 SUB AX,AX
1DC3:0110 90 NOP
1DC3:0111 C3 RET
-R IP
IP 0108
:100
Команда R IP позволяет изменить регистр IP и в данном случае установить указатель команды в начало программы.
-R
AX=0148 BX=0148 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1DC3 ES=1DC3 SS=1DC3 CS=1DC3 IP=0100 NV UP EI PL NZ NA PE NC
1DC3:0100 B82301 MOV AX,0123
-T
AX=0123 BX=0148 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1DC3 ES=1DC3 SS=1DC3 CS=1DC3 IP=0103 NV UP EI PL NZ NA PE NC
1DC3:0103 052500 ADD AX,0025
В предыдущем примере использовались непосредственные данные ,описанные непосредственно в первых двух командах (MOV и ADD).Теперь рассмотрим аналогичный пример ,в котором значения 0123 и 0025 определены в полях сегмента данных.Данный пример позволяет понять ,как компьютер обеспечивает доступ к данным посредством регистра DS и адресного смещения
Сегмент данных:
¦ Адрес в DS ¦ Значение ¦ Номер байта ¦
+-----------------+----------------+--------------------+
¦ 0000 ¦ 23 01 ¦ 0 1 ¦
¦ 0002 ¦ 25 00 ¦ 2 3 ¦
¦ 0004 ¦ 00 00 ¦ 4 5 ¦
¦ 0006 ¦ 2A 2A 2A ¦ 6 7 и 8 ¦
Программа в машинных кодах:
A1 00 00 Переслать слово (2 байта) , начинающееся в DS по адресу 00 в регистре AX.
03060200 Прибавить содержимое слова, начин. в DS по адресу 0002 к регистру AX.
A30400 Переслать содержимое регистра AX в слово начинающееся в DS по адресу 0004.
CB Вернуться в DOS.
Ввод данных в сегмент данных:
-E DS:00 23 01 25 00 00 00
-E DS:06 2A 2A 2A
Для ввода программы на машинном языке надо ввести следующие команды ,включая пробелы:
-E CS:100 A1 00 00 03 06 02 00
-E CS:107 A3 04 00 CB
Просмотр сегмента данных:
-D DS:00
1DC3:0000 23 01 25 00 00 00 2A 2A-2A F0
1DC3:0010 4E 17 17 03 4E 17 57 15-01 01 01 00 02 FF FF FF..
1DC3:0020 FF FF FF FF FF FF FF FF-FF FF FF FF
1DC3:0030 53 1B 14 00 18 00 C3 1D-FF FF FF FF 00 00 00 00
1DC3:0040 07 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
1DC3:0050 CD 21 CB 00 00 00 00 00-00 00 00 00 00 20 20 20 .
1DC3:0060 20 20 20 20 20 20 20 20-00 00 00 00 00 20 20 20
1DC3:0070 20 20 20 20 20 20 20 20-00 00 00 00 00 00 00 00 .
Просмотр сегмента кода:
-D CS:100
1DC3:0100 A1 00 00 03 06 02 00 A3-04 00 CB D9 29 C1 29 C0 .
1DC3:0110 90 C3 D6 E0
1DC3:0120 D7 E0
1DC3:0130 1E CB DF 80 3E CF DF 00-75 0D C7 87 D7 E0 2A 2E
1DC3:0140 43 43 83 06 D1 DF 02 C7-87 D7 E0 2A 00 83 06 D1 CC
1DC3:0150 DF 01 5B C3 57 8B 3E CD-DF AC AA 0A C0 75 FA
1DC3:0160 C3 57 8B 3E CB DF EB F1-53 A1 D1 DF BB DB E1 03
1DC3:0170 D8 80
Просмотр регистров и текущей команды:
-R
AX=0123 BX=0148 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1DC3 ES=1DC3 SS=1DC3 CS=1DC3 IP=0103 NV UP EI PL NZ NA PE C
1DC3:0103 03060200 ADD AX,[0002] DS:0002=
Трассировка -выполнение одной команды:
-T
AX=0148 BX=0148 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1DC3 ES=1DC3 SS=1DC3 CS=1DC3 IP=0107 NV UP EI PL NZ NA PE C
1DC3:0107 A30400 MOV [0004],AX DS:0004=
-T
AX=0148 BX=0148 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1DC3 ES=1DC3 SS=1DC3 CS=1DC3 IP=010A NV UP EI PL NZ NA PE C
1DC3:010A CB RETF
Возврат на начало программы:
-R IP
IP 010A
:100
Просмотр регистров и текущей команды:
-R
AX=0148 BX=0148 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1DC3 ES=1DC3 SS=1DC3 CS=1DC3 IP=0100 NV UP EI PL NZ NA PE C
1DC3:0100 A10000 MOV AX,[0000] DS:0000=0123
Трассировка до конца программы с выполнением команды RET:
-T
AX=0123 BX=0148 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1DC3 ES=1DC3 SS=1DC3 CS=1DC3 IP=0103 NV UP EI PL NZ NA PE C
1DC3:0103 03060200 ADD AX,[0002] DS:0002=0025
-T
AX=0148 BX=0148 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1DC3 ES=1DC3 SS=1DC3 CS=1DC3 IP=0107 NV UP EI PL NZ NA PE C
1DC3:0107 A30400 MOV [0004],AX DS:0004=0148
-T
AX=0148 BX=0148 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1DC3 ES=1DC3 SS=1DC3 CS=1DC3 IP=010A NV UP EI PL NZ NA PE C
1DC3:010A CB RETF
-T
AX=0148 BX=0148 CX=0000 DX=0000 SP=FFF2 BP=0000 SI=0000 DI=0000
DS=1DC3 ES=1DC3 SS=1DC3 CS=0D75 IP=0000 NV UP EI PL NZ NA PE NC
0D75:0000 005926 ADD [BX+DI+26],BL DS:016E=E1