鱼C论坛

 找回密码
 立即注册
查看: 2703|回复: 4

关于地址的计算

[复制链接]
发表于 2012-5-22 13:01:26 | 显示全部楼层 |阅读模式
1鱼币
0624H单元内有一条二字节JMP  SHORT OBJ指令,如其中位移量为0C6H,试问转向地址OBJ的值是多少?
OBJ=0624H+02H+0C6H=05ECH           C6H对应的负数为-3AH(向上转移,负位移量)
是如何计算的。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-5-22 17:40:22 | 显示全部楼层
本帖最后由 xiaolongxia 于 2012-5-22 17:59 编辑

第一个,和第三个就不说了!第二个是当前指令jmp Short obj所占的字节数(2个字节)!
你好好理解下位移量,把9.3好好理解下!

现在回顾下指令的操作:
cs:ip 步骤:1、cpu将cs:ip指向的地址中的指令取出放入指令缓存器中,
                     2、Ip =  IP+指令长度,(指令长度为刚刚取出的指令的长度)
                     3、执行指令,转步骤1
我简单解释下:jmp short obj,其中short指明了是短跳转,也就是跳转的范围为-128~127(8位),(而cpu是16位的,因而这一个字节只能存放一个位移量,个人理解!)
执行下cs:ip的步骤,
               第一步:取jmp指令到指令缓存器
               第二步中指令的长度为jmp short obj指令的长度,为2个字节!
               而要cpu执行跳转指令的时候,已经是第三步了!
      第三部执行前,此时的cs:ip已经指向了下一条指令了!  (*)
     你给的题目中的0624H地址,指向的是jmp那条指令,而到(*)这里,ip已经是0624h+2h了,而所谓的位移量,也是相对于这时的IP,来讲的,到jmp目的地的距离!(因为只有机器执行了这条语句,才能知道命令中的位移量,而这时已经是第三步了!所以:位移量就是jmp指令地址的下一个地址与目的地址的差值)
不知道你理解的了不!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-22 10:25:58 | 显示全部楼层
{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-25 20:11:44 | 显示全部楼层
{:1_1:}{:1_1:}{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-31 10:36:51 | 显示全部楼层
来学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-19 02:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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