首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LC3中偏移量的确定

LC3中偏移量的确定
EN

Stack Overflow用户
提问于 2015-09-03 02:46:22
回答 1查看 7.4K关注 0票数 0

我得到了几行代码,并被告知编写相应的LC3指令。我在确定抵消值方面有困难。

例如:

代码语言:javascript
复制
x3100    1110001000100000

所以1110是LEA的操作码。001表示R1。其余的让我感到困惑。剩下000100000英镑。查看LC-3指令列表,LEA的语法如下

代码语言:javascript
复制
LEA-->  |1110|DR|PCoffset9|

如何从我的代码中找出PCoffset9是什么? 000100000是数字32,所以它是:

代码语言:javascript
复制
LEA R1, #32    ;is this right?

这似乎不对。我记得我看到这些数字代表了记忆的位置?那么000100000是x020?我真搞不懂怎么才能算出偏移量。

EN

回答 1

Stack Overflow用户

发布于 2015-09-03 10:17:35

你说得对,这条指令的细节是正确的。剩下的偏移量000100000实际上是小数点32或十六进制的x0020。

此偏移必须从当前指令的结尾处提取。由于当前的指令在x3100,所以它的结尾是在x3101。现在,将32加到这个数字中,然后得到这个LEA所指的内存地址。x3101 + 32 == x3121

很可能在一个正常的程序中,在这个地址x3121上定义了一个标签。因此,编码1110001000100000的指令可以起源于如下的源行:

代码语言:javascript
复制
LEA R1, MYLABEL
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32366170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档