王爽汇编实验(八)

流过昼夜 提交于 2019-12-05 08:29:33

分析下面的程序,在运行前思考:这个程序可以正确返回吗?

运行后再思考:为什么时这种结果?

通过这个程序加深对相关内容的额理解。

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

初看时到s1,然后是返回中止?

不多说,运行分析

是从start开始的指令,与想法没错,end start告诉了masm那里是入口

 

JMP 0008是S的标号地址,后来JMP 0000 这样一来发现了原本的IP是0005,是前面两个返回语句,是直接略过的

 

jmp 0008下一条是jmp0000,nop执行后分配90H机器码空间,跳转到codesg 结束

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!