[英]Finding the type and assembly language for binary code
提供以下二进制值的类型和汇编语言:
0000 00 10 000 1 0001 0100 0 000 00 10 0000两个(8分)
R型指令
二进制值000000 10000 10001 01000 00000 100000
Assembly Code Op = 0 (Add) Rs = 16 ($s0)
Rt = 17 ($s1) Rd = 8($t0) Shamt = 0 Funct = (add)
Add $t0, $s0, $s1
这就是我得到的,但是我不确定是否正确。 我不确定如何将二进制代码转换为r型指令。
你的迷茫看起来很正确
要分析二进制指令,请在CPU尝试执行该指令时对其进行查看。
首先看一下指令集https://en.wikipedia.org/wiki/MIPS_architecture#Instruction_formats
前6位始终是OPcode。 操作码0对R类型的指令进行编码,因此funct
和shamt
字段也必须求值。 在这种情况下, opcode=000000
且funct=100000
和shamt=00000
。
例如,在此https://opencores.org/projects/plasma/opcodes列表上,此类组合可以标识为第一行的ADD指令。
您已正确识别寄存器
rs=10000 16
rt=10001 17
rd=01000 8
所以放在一起
// R8=R16+R17
ADD R8,R16,R17
由于寄存器名称约定,这也称为
ADD $t0,$s0,$s1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.