鱼C论坛

 找回密码
 立即注册
查看: 3723|回复: 0

[汇编作业] 实验8

[复制链接]
发表于 2021-4-22 22:05:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
实验8
assueme 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 10:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表