关于地址的计算
在0624H单元内有一条二字节JMPSHORT OBJ指令,如其中位移量为0C6H,试问转向地址OBJ的值是多少?答 OBJ=0624H+02H+0C6H=05ECH ;C6H对应的负数为-3AH(向上转移,负位移量)是如何计算的。 本帖最后由 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指令地址的下一个地址与目的地址的差值)
不知道你理解的了不!
{:1_1:} {:1_1:}{:1_1:}{:1_1:} 来学习一下
页:
[1]