assume cs:codesg
codesg segment
mov ax,4c00h
int 21h
start: mov ax,0
s: nop
nop
mov di,offset s
mov si,offset s2
mov ax,cs:[si]
mov cs:[di],ax
s0: jmp short s
s1: mov ax,0
int 21h
mov ax,0
s2: jmp short s1
nop
codesg ends
end start
程序我看得懂 但是不知道为什么是执行cs:0这条指令,不是应该执行s的么
“P180中关于jmp指令的位移内容
当指令执行到s0:jmp short s时,该指令得到执行,编译器算出的ip位移量为8-18h=-16(补码F0),(ip)=(ip) 位移量=18h (-16)=8,cs:8指向s;
当指令执行到s标段jmp命令时,第1个字节中的机器码为EBF6,给出的ip位移量为-10(补码F6),(ip)=(ip) 位移量=ah (-10)=0,cs:0指向第一条指令。”
这个是我找到的答案说明,看不懂。。
求哪位给解释解释啊! 这里没学通,什么补码的不懂啊
|