汇编地址跳转

来源:互联网 发布:dataflow软件怎么样 编辑:程序博客网 时间:2024/05/02 01:04


下面程序是否能够正常返回




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 


/////////
转换后
assume cs:codesg




codesg segment 


mov ax,4c00h
int 21h 


start :
mov ax,0
s :
jmp short s1 ;;//////////不同点
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 




分析
这里的地址转移时根据偏移地址来的
所以由
s2:
jmp short s1
可知他是向上转移的,也就是说
s :
jmp short s1 ;;//////////不同点
nop
跳转不是向下的
而是向上跳转的,所以最终回到了
codesg segment 


mov ax,4c00h
int 21h 
这里,程序就正确的推出了