阿西吧 发表于 2017-7-10 16:38:21

汇编语言上天之路, 第43到47课(转移原理)

第四十三到四十七课(转移原理)
        转移分为改变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位的近跳转)

**** Hidden Message *****

小甲鱼 发表于 2017-7-10 18:12:10

上天入地就有你!{:10_256:}

阿西吧 发表于 2017-7-11 11:23:53

小甲鱼 发表于 2017-7-10 18:12
上天入地就有你!

上鱼神的车不会翻{:10_289:}
页: [1]
查看完整版本: 汇编语言上天之路, 第43到47课(转移原理)