Счетчики расстановки и сегмент кода - PullRequest
0 голосов
/ 20 января 2011

Как рассчитываются эти счетчики местоположений для сегмента кода:

 0000               codesg Segment
                Assume cs:codesg,ds:datasg
 0000               Main proc Far
 0000  B8 ---- R            mov ax,seg datasg
 0003  8B D0                mov dx,ax
 0005  A1 000A R            mov ax,b2+2
 0008  50               push ax
 0009  A1 000A R        l1: mov ax,x
 000C  40               inc ax
 000D  3C 05                cmp al,5
 000F  75 09                jne l2
 0011  8B 0E 0008 R         mov cx,a2+2
 0015  E2 F2                loop l1
 0017  B8 0000              mov ax,0
 001A  CB           l2: ret
 001B               main endp
 001B               codesg ends

1 Ответ

0 голосов
/ 20 января 2011

Вы просто добавляете количество байтов в текущей инструкции к текущему счетчику местоположений, и это становится новым счетчиком местоположений.Так что если вы начинаете с местоположения 0 и у вас есть 3-байтовая инструкция, то счетчик местоположения для следующей инструкции будет равен 3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...