马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
实验8assueme cs:codesg
codesg segment
mov ax,4c00h 这两句是程序正常返回的语句
int 21h
start: mov ax,0
s: nop
nop
mov di,offset s 那s的地址
mov si,offset s2 那s2的地址
mov ax,cs:[si] 从s2处读取一个字(2byte)
mov cs:[di],ax 将s2读取的内容写到s开头处
s0: jmp short s
s1: mov ax,0
int 21h
mov ax,0
s2: jmp short s1
nop
end start
分析如下:
1.先读取s和s2的地址,并分别储存到di和si中,然后在通过操作si和di,从s2读取一个字大小内容并替换掉s开头处的两个nop
从s1的内容可以看出,jmp short s1对应的意义就是想、向上转移8个内存单元(不包含内存单元本身),实际对应的机器指令是
EB(jmp)F6(-10)
2.程序运行到jmp short s,也就到了EB F6(向上转移8个),刚好就来到了cs:0处,接着就运行开头的两句,程序正常返回
————————————————
版权声明:本文为CSDN博主「zfy1996」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zfy1996/article/details/104400442 |