проблема обзора перечисляет эти регистры в шестнадцатеричном виде:
cs = ???? sp = 0300 ax = a66a ip = 01cf
ds = 4100 bp = 0003 bx = 1234
ss = 48ee si = 0100 cx = 00ff
es = 4cee di = 1000 dx = 0000
Абсолютный адрес следующей команды, которая должна быть выполнена, равен 40f0f.
40f0f
-01cf
_____
40d40 / 10 = 40d4 = cs
Всегда ли размер сегмента данных в байтах всегда равен сегменту стека минус сегмент данных * 10?48ee - 4100 = 7ee0.Аналогично, всегда ли сегмент кода в байтах всегда равен сегменту данных минус сегмент кода * 10?48ee - 40d4 = 81a0.
Для mov cx,[bx + si]
абсолютный адрес исходного операнда 42334.
bx = 1234
si = 0100
_________
1334
ds = 4100 * 10 = 41000 + 1334 = 42334
Для mov cx,[di - 4]
, абсолютный адрес исходного операнда равен 41ffc.
di = 1000
- 4
_________
0FFC
ds = 4100 * 10 = 41000 + 0ffc = 41ffc
Для mov cx,[bp + si - 3]
абсолютный адрес исходного операнда равен 48fe0.
bp = 0003
si = 0100
- 3
_________
0100
ss = 48ee * 10 = 48ee0 + 0100 = 48fe0
Собираюсь ли я решить их правильно?Как узнать, когда использовать сегмент стека для этих вычислений и когда использовать сегмент данных?