这道题看不太明白,麻烦谁给讲一下,谢谢!

rubyt 2009-06-15 08:14:04
某机器字长16位,主存按字节编址,转移指令采用相对寻址,由两个字节组成,第一字节为操作码字段,
第二字节为相对位移量字段。假定取指令时,每取一个字节PC自动加1。若某转移指令所在主存地址
为2000H,相对位移量字段的内容为06H,则该转移指令成功转移以后的目标地址是

A.2006H B.2007H C.2008H D2009H

答案是C。

请问PC不是在取完一个字节之后才加1吗,那取完操作码之后就是2001H,再读取相对位移量06H,
相加不就是2007H吗,为什么是2008H呢?


我当初学的几乎全都忘光了, 麻烦给讲一下PC读取指令的过程,谢谢了!
...全文
172 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
asheo 2009-06-15
  • 打赏
  • 举报
回复
跟这句话有关 "转移指令采用相对寻址,由两个字节组成"

PC不是取完一个字节就加一,而是 加一指向下一条指令
BAYNPU 2009-06-15
  • 打赏
  • 举报
回复
JMP指令中的操作数是要转移到的目标地址,也称为目的地址、转移地址。目标地址操作数的寻址方法可以是相对寻址、直

接寻址或间接寻址。相对寻址方式以当前IP为基地址,加上位移量构成目标地址。相对寻址方式根据位移量进行转移方便了

程序段在内存中的动态加载,是最常用的目标地址寻址方式。例如,同样的一段程序,如果改变了内存地址,转移的目的地

址也就改变了,但是转移指令与目的指令之间的位移并没有因此改变。

killbug2004 2009-06-15
  • 打赏
  • 举报
回复
cpu先取指令,然后解码指令,这时候就根据操作码确定了指令的长度,ip寄存器也就指向了下一条指令,这个题目中跳转指令长度为2字节,所以下一条指令
的地址为2002,然后执行解码后的指令,这里为转移指令,偏移量为06H,所以转移后的目标地址为2008h

转移指令的偏移是相对转移指令下一条指令的相对偏移,因为解码完后ip已经调整为指向下一条指令,再直接加上偏移就是目标地址

21,500

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧