首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果LC3中有16个寄存器,那么有多少位可用于即时值

如果LC3中有16个寄存器,那么有多少位可用于即时值
EN

Stack Overflow用户
提问于 2021-03-16 05:43:43
回答 2查看 555关注 0票数 0

LC-3有16个寄存器,每个寄存器64位长,32位指令.对于一个ADD指令的直接值,有多少位是可用的?据我所知,表示每个寄存器所需的最小位数是4(16的日志基2),而且由于我有两个寄存器(目的地和要添加的第一个寄存器),这就相当于4+4位。所以32-4-4-1(指令中的位,告诉我们一起添加即时值和第一个寄存器中的内容)= 23。我是否可以假设ADD指令总是有4位的操作码,并做23-4来得到19作为我的答案?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-16 14:21:32

你的数学是正确的。如果您需要对32位上的单个源寄存器、目标寄存器、4位操作码、即时-vs寄存器信号进行编码,则只剩下19位用于即时:

代码语言:javascript
运行
复制
32 - 4 - log_2(16) - log_2(16) - 1 = 19

不过,我不知道你从哪里得到你的号码。LC-3体系结构有8个16位寄存器和16位指令:

代码语言:javascript
运行
复制
16 - 4 - log_2(8) - log_2(8) - 1 = 5

对于“我可以假设ADD指令总是有4位的操作码”,答案取决于您在说什么。没有任何假设,LC-3有固定的4位操作码字段.但是,当对体系结构进行更改时(就像您在问题中对扩大的指令和注册文件所做的一样),可以对操作码编码进行更改。

票数 2
EN

Stack Overflow用户

发布于 2021-03-24 17:07:38

不确定我们在说的是同一台机器。lc-3有8个寄存器R0,..,R7,它们有16位宽.存储器被组织为64k的16位宽。指令有16位宽。与嵌入值相加是添加DR,SR,值码op 4位,DR 3位,SR 3位,1位设置嵌入模式,这为嵌入值2的补充留下了5位。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66649682

复制
相关文章

相似问题

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