assembly - func在R格式指令集中意味着什么?

标签 assembly mips cpu-architecture machine-code

我对汇编语言非常陌生。我正在阅读有关 MIPS 体系结构的信息,但我对寄存器格式(R-Format)的最后一个字段感到困惑。这是它的视觉表现,

谁能用来帮助我,第六个字段表示是什么,我们如何计算呢?
提前致谢。

最佳答案

正如描述中提到的那样,所有R型指令(例如ADDANDSLL等)都将6个最高有效位(= op)设置为0,这意味着区分它们的唯一方法是查看6个最低有效位。位(= funct)。换句话说,它们确定指令类型。也许一个例子会有所帮助:

ADD $1, $2, $3 
具有:
op = 0 (as all R-type instructions)
rs = 2
rt = 3
rd = 1
shamt = 0
funct = 0x20 = 0b00000100000 = 32
因此,编码将是:
0000 0000 0100 0011 0000 1000 0010 0000
例如XOR(另一种R型)指令功能是0b100110 = 0x26 = 38。因此,您可以通过查找要编码的指令来“计算”它。
(取自MIPS Instruction Reference)。

关于assembly - func在R格式指令集中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6929440/

相关文章:

无法在 macOS Sierra 上将程序集文件 (.s) 与 GCC 链接

c - Mips32中的Printf和Scanf以及其他问题

linux - _mm_clflush 真的会刷新缓存吗?

android - 仅使用 armeabi 构建的应用程序能否在 armeabi-v7a 设备上运行?

x86-64 - 使用索引寻址模式时的瓶颈

c - 错误的指令 - C 代码中的内联汇编语言

c++ - 如何在 NASM 中返回浮点值?

linux - 在 Linux 中获取数据段的结尾

assembly - MIPS - assembly BEQ 命令

C语言转MIPS。斐波那契数