鱼C论坛

 找回密码
 立即注册
查看: 3646|回复: 2

[学习笔记] 汇编语言上天之路, 第43到47课(转移原理)

[复制链接]
发表于 2017-7-10 16:38:21 | 显示全部楼层 |阅读模式

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

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

x
第四十三到四十七课(转移原理)
        转移分为改变IP和同时改变CS:IP两种
        短转移short修改IP的范围为(-128~127)以补码方式存放
        近转移near的IP修改范围为(-32768~32767)也是以补码方式存放
       
        汇编语言中offset 标号,如offset start就是取标号start的偏移地址
        jmp short 标号        实现的是段内的短转移,范围为-128~127
       
        jmp的实现,jmp short s的机器码为EBXX(占两个字节)
        CPU在执行JMP时候并不需要转移的目的地址,而是要转移的位移
        1.先读取Jmp指令机器码到指令缓冲期
        2.ip = ip + jmp short s指令的长度
        3.执行缓冲指令器的指令就IP + XX

        jmp near ptr 标号实现段内近转移(范围为-32768~32767),机器码为E9XXXX,占三个字节
        1.先读取Jmp指令机器码到指令缓冲期
        2.ip = ip + 16位位移(-32768~32767)
        3.执行缓冲指令器的指令就IP + XX

        jmp far ptr 标号实现段间转移
        jmp fat ptr 标号的机器码为EAXXXXXXXX,占5个字节,高四位表示段地址,低四位表示偏移地址
       
        jmp地址的用法
        jmp 16位的reg     jmp word ptr 内存单元地址     jmp doword ptr 内存单元地址
        ip = 16位reg          ip = 内存地址                        ip = 高四位为段地址,低四位为偏移地址
       
        jcxz就是cx=0就跳转(范围只能是8位的近跳转)


游客,如果您要查看本帖隐藏内容请回复

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
小甲鱼 + 5 + 5 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-10 18:12:10 | 显示全部楼层
上天入地就有你!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-11 11:23:53 | 显示全部楼层
小甲鱼 发表于 2017-7-10 18:12
上天入地就有你!

上鱼神的车不会翻
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 12:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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