阿西吧 发表于 2017-6-24 22:35:39

汇编语言上天之路8-10课笔记(JMP同一地址不同机器码))


第八节课
        物理地址 = 段地址×16 + 偏移地址(×16相当于二进制向左移动4位)        二进制左移一位相当于×2


第九节课
        段地址和偏移地址都是16位(如FFFF),所以段地址不变,只改变偏移地址的最大寻址能力为64KB-》2的16次方


第十节课
        CS是代码段,IP是代码段的偏移地址
        JMP ax,作用是改变IP,不改变CS
        JMP 1000:3的作用是改变CS和IP

附JMP近跳转的同一地址出现不同机器码的原因:
如:
0047FF0E处跳转到10001000地址处,则机器码为E9 ED 10 B8 0F    ,   E9为近跳转的机器码   ,又有OD用的小端序所以跳转的EIP为0FB810ED
用JMP的地址减去JMO指令处的地址再减去这个指令的长度5字节得到 10001000-0047FF0E-5 = 0FB810ED,这个就是JMP同一地址不同机器码的原因

0047FF16处跳转到10001000地址处,则机器码为E9 E5 10 B8 0F   ,   跳转的EIP为0FB810E5
用JMP的地址减去JMP指令处的地址再减去这个指令的长度5字节得到 10001000-0047FF16-5 = 0FB810E5
页: [1]
查看完整版本: 汇编语言上天之路8-10课笔记(JMP同一地址不同机器码))