【发布时间】:2021-11-12 20:54:54
【问题描述】:
slt $t2, $t0, $t1
beq $t2, $0, ELSE
j DONE
ELSE: addi $t2, $0, 3
DONE:
我需要将 beq $t2, $0, ELSE 转换为十六进制的机器语言,但我不确定该怎么做?我知道你应该遵循格式 beq rs, rt, label 但问题是那里有一个 ELSE 那么我该怎么做呢?另外,为什么在定义之前使用 ELSE?为什么允许这样做?
【问题讨论】:
-
“还有,为什么在定义之前使用ELSE?为什么允许这样做?”如果只允许向后跳转,编写代码很快就会变得非常困难。跨度>
-
就将其转换为机器码而言:您知道分支指令和目标标签之间的偏移量,因此只需根据指令集参考中列出的格式插入数字即可。或者在 MIPS 模拟器(如 SPIM 或 MARS)中加载代码,让它为您进行转换。
-
好的,谢谢你的好先生帮助我,我想我现在明白了
标签: assembly mips machine-language