小甲鱼汇编语言视频第48课的例子,为什么程序会陷入循环?
这个例子如下:20000:mov ax,0
20002:call s
20005:mov ax,4c00h
20008:int 21h
2000A:s: add ax,1
2000D:ret
当程序到ret的时候,就把栈里面的ip调出来,指向20005,到这里程序就应该结束了,为什么小甲鱼说这里会陷入一个死循环呢? 这是完整代码吗?光这几行看不出是死循环 本帖最后由 关键是感觉 于 2018-8-6 14:48 编辑
我很负责任的给你说,你发的代码不会死循环
1.call s 会把20005偏移地址压入栈,
2.ret 会把栈顶的值,给ip,相当于pop ip
结果就是,刚好互补,不会死循环
页:
[1]