繁体   English   中英

查找二进制代码的类型和汇编语言

[英]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类型的指令进行编码,因此functshamt字段也必须求值。 在这种情况下, opcode=000000funct=100000shamt=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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM