分析下边这个程序是否可以正常返回,啊为什么是这样结果;
assume cs:codesg
codesg segment
mov ax,4c00h
int 21h
start:
mov ax,0
s:
nop
nop ;被替换为 jmp short s1
mov di,offset s
mov si,offset s2
mov ax,cs:[si] ;将cs:[si]=jmp short s1 指令放入ax中
mov cs:[di],ax ; 将 开始s位置的两条空指令 替换为 jmp short s1;
s0:
jmp short s ; ;跳转到s位置,执行jmp short s1指令
s1:
mov ax,0 ; 从s位置跳转到s1位置,执行ax=0
int 21h
mov ax,0
s2:
jmp short s1
nop ; 向前跳转-10(ip nop + f6(-1)补码)
codesg ends
end start