func 在 R-Format 指令集中意味着什么?

发布于 2024-11-28 02:54:34 字数 233 浏览 5 评论 0原文

我对汇编语言非常陌生。我正在阅读有关MIPS架构的内容,但我对寄存器格式(R-Format)的最后一个字段感到困惑。这是它的视觉表现, 在此处输入图像描述 谁能帮我解决第六个字段的含义以及我们如何计算它? 提前致谢。

I am very new to Assembly language. I was reading about MIPS architecture and I am stuck with the last field of the Register Format (R-Format). Here is its visual representation,
enter image description here
Can anyone please help me out with what does the sixth field means and how do we calculate it?
Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

筑梦 2024-12-05 02:54:34

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

ADD $1, $2, $3 

has:

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 指令参考)。

As the description mentions all R-type instructions (e.g. ADD, AND, SLL and others) have the 6 most significant bits (= op) set to 0, that means the only way to distinguish between them is to look at the 6 least significant bits (= funct). In other words they determine the instruction type. Perhaps an example will help:

ADD $1, $2, $3 

has:

op = 0 (as all R-type instructions)
rs = 2
rt = 3
rd = 1
shamt = 0
funct = 0x20 = 0b00000100000 = 32

The encoding will thus be:

0000 0000 0100 0011 0000 1000 0010 0000

For e.g. XOR (another R-type) instruction funct is 0b100110 = 0x26 = 38. So you "calculate" it by looking up what instruction you want to encode.

(taken from MIPS Instruction Reference).

在梵高的星空下 2024-12-05 02:54:34

从下表:

http://en.wikibooks.org/wiki/MIPS_Assembly/Instruction_Formats#Opcodes

几乎所有R-Type指令的操作码都是00,所以该函数选择ALU函数。

功能
对于共享操作码的指令,函数参数
包含必要的控制代码来区分不同的
指示。 6 位长(0 到 5)。示例:操作码 0x00 访问
ALU,funct 选择使用哪个 ALU 函数。

From following table:

http://en.wikibooks.org/wiki/MIPS_Assembly/Instruction_Formats#Opcodes

Almost All R-Type instruction's opcode is 00, so the funct select the ALU function.

Funct
For instructions that share an opcode, the funct parameter
contains the necessary control codes to differentiate the different
instructions. 6 bits long (0 to 5). Example: Opcode 0x00 accesses the
ALU, and the funct selects which ALU function to use.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文