Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 一个简单的问题_Assembly_Mips_Instruction Set - Fatal编程技术网

Assembly 一个简单的问题

Assembly 一个简单的问题,assembly,mips,instruction-set,Assembly,Mips,Instruction Set,我有个问题,有点困惑 Write the MIPS instruction whose machine language encoding is: 0000 0011 0001 1001 0100 0000 0010 1010 Your answer must use register names (like $t0) not numbers; and must specify any immediate as a signed integer in decimal. 答案是,后面的部分与sl

我有个问题,有点困惑

Write the MIPS instruction whose machine language encoding is:
0000 0011 0001 1001 0100 0000 0010 1010
Your answer must use register names (like $t0) not numbers; and must specify
any immediate as a signed integer in decimal.
答案是,后面的部分与slt有关。有人能解释一下,问题到底在问什么,答案是什么


多谢

装配说明将机器表示为位,这就是给您的

它们还有一个文本表示,让人类更容易阅读和书写它们,这就是你被要求的


您需要了解如何从二进制表示中提取文本表示的各个部分。使用
slt
您就在正确的轨道上,仍然需要查找指令中使用的寄存器或常量。您应该有一些MIPS指令引用,指定此指令的位模式的含义。

汇编指令将机器表示为位,这就是给定的

它们还有一个文本表示,让人类更容易阅读和书写它们,这就是你被要求的


您需要了解如何从二进制表示中提取文本表示的各个部分。使用
slt
您就在正确的轨道上,仍然需要查找指令中使用的寄存器或常量。您应该有一些MIPS指令参考,指定此指令的位模式的含义。

编程时,现在您通常使用高级语言(如C或Java)编写,编译器将其分解为汇编语言(MIPS、x86等),然后将其汇编成机器语言(二进制)您的处理器可以对其进行本机解释

这是一条MIPS处理器能够解释和执行的指令。问题是要求您将其翻译回MIPS汇编语言。你一定要有一个MIPS说明参考来帮助你。如果您没有,这里有一个好的:

http://www.d.umn.edu/~gshute/spimsal/talref.html#rtype
(提示:我们现在看到的指令是一条R型指令,这意味着它是一条直接在寄存器上操作的指令,不使用立即数。)

如果您查看顶部的表,它会分解MIPS R-type指令。前6位是操作码。您会注意到指令的前6位是0,这是因为所有R型指令的操作码都有000000,处理器通过使用FUNCT字段知道它在处理什么指令,这就是我们知道“slt”是我们正在查看的指令的方式(参见参考资料)

您现在真正需要的是知道哪个寄存器名映射到哪个寄存器号(即寄存器8可能是$t0)。这里有一个参考:

http://logos.cs.uic.edu/366/notes/mips%20quick%20tutorial.htm

在编程时,现在您通常使用高级语言(如C或Java)进行编写,编译器将其分解为汇编语言(MIPS、x86等),然后将其汇编为机器语言(二进制),处理器可以对其进行本机解释

这是一条MIPS处理器能够解释和执行的指令。问题是要求您将其翻译回MIPS汇编语言。你一定要有一个MIPS说明参考来帮助你。如果您没有,这里有一个好的:

http://www.d.umn.edu/~gshute/spimsal/talref.html#rtype
(提示:我们现在看到的指令是一条R型指令,这意味着它是一条直接在寄存器上操作的指令,不使用立即数。)

如果您查看顶部的表,它会分解MIPS R-type指令。前6位是操作码。您会注意到指令的前6位是0,这是因为所有R型指令的操作码都有000000,处理器通过使用FUNCT字段知道它在处理什么指令,这就是我们知道“slt”是我们正在查看的指令的方式(参见参考资料)

您现在真正需要的是知道哪个寄存器名映射到哪个寄存器号(即寄存器8可能是$t0)。这里有一个参考:

http://logos.cs.uic.edu/366/notes/mips%20quick%20tutorial.htm