mips - 不同场景对单周期数据路径的影响(beq 命令)
问题描述
我对以下情况感到困惑和不确定。
我有以下数据周期:
我知道在 0x3000 我有以下命令:beq $t1,$t2,home
- home
0x30AC 在哪里,$t1=$t2=0x2000。
出于某种原因,我无法使用在线转换器将其翻译成 hexa。我试过的命令是:beq 0x2000, 0x2000, 0x30AC
. 由于 beq 命令的语法,据我所知是:BEQ rs, rt, offset [I-type]
,所以我不明白为什么它不起作用。
无论如何,我的主要问题是以下情况:
- 如果 ALUSrc 的控制线卡在 1,该命令会做什么?
- 如果 MemWrite 卡在 1,该命令会做什么?
- 如果 ALUOp 卡在值 10(二进制)上,该命令会做什么?
我的想法:
- 如果 alusrc 等于 1,则将从命令中取出低 16 位(带有符号扩展名)并添加到 $rs (0x2000)。
- 如果 Memwrite 等于 1,则数据存储器将被意外写入。
- 我真的不知道如果 ALUop 卡在 10 会发生什么。非常感谢有关这种情况的解释。
我尽量详细说明以使其易于理解,并提供我的尝试和见解(如果正确,希望有些是大声笑)。
解决方案
推荐阅读
- rust - 类型转换和强制转换
- flutter - 未解决的参考:FlutterActivity
- c - 使用 X 宏的特定条目
- asp.net-core - nlog中不同环境的基本目录路径
- javascript - 事件捕获是否通过触发节点的兄弟姐妹?
- ansible - Ansible Collections:如何使用 Google Cloud Compute Engine 库存源
- c++ - 如何转发打包的可变参数
- c# - 从 PropertyChanged 中删除 lambda 表达式(相当于 p.PropertyChanged -= (s,a) => { ... })
- android - 是否可以将状态栏覆盖在活动上,但不能覆盖导航栏
- android - Android Studio 4.0.2 Gradle 错误:没有为属性“enableGradleWorkers”指定值