MIPS-32 操作码格式:大写还是小写?

MIPS-32 Opcode Format: Uppercase or Lowercase?

我目前正在学习计算机组织课程,并且一直在学习 MIPS-32 体系结构。我注意到我们使用的书列出的操作码都是小写的,而教授列出的操作码都是大写的。我在不同的网站上查了一下,发现有些网站的操作码全部大写,而其他网站的操作码全部小写。我在 Stack overflow 上寻找过类似的问题,但没有找到。

例如,要添加,我们可以这样:

ADD $s2, $s1, $s0

但是,其他网站和书中将其描述为:

add $s2, $s1, $s0

谁能说明哪种操作码格式更传统?我还没有构建汇编语言程序,所以我不确定操作码是否区分大小写;是吗?

N.B。我正在使用的书是 Computer Organization and Design MIPS Edition: The Hardware/Software Interface by David A. Patterson and John L. Hennessy.

这些不是 opcodes (part of binary machine code), they're just asm mnemonics,汇编程序的文本输入。 (请注意,“操作码”有时被用来表示整个二进制指令,包括对操作数进行编码的部分,但这很愚蠢,因为我们已经有了“指令”这个词。)

大多数汇编器(以及所有 MIPS 汇编器 AFAIK)对助记符和寄存器名称不区分大小写。
一个很好的现代风格惯例是对真正的助记符使用小写,对宏使用大写。

所有大写字母(包括操作数)曾经很常见,特别是对于 8 位/16 位 CPU 和微控制器(甚至更早的早期计算机),但肯定被一些人用于其他系统,包括更现代的。 部分 was/is 惯性来自仅支持大写字母的系统 :请参阅 retrocomputing.SE 上的 When did assembly source code begin to be written in lowercase?

文档中,您可以在其中随意混合指令名称和文本并谈论关于 指令,尽管 粗体 code 也可以,但在所有大写字母中编写助记符是很常见的。考虑到印刷格式的书籍和材料通常偏爱 CAPS。网上的东西,例如Stack Overflow 的答案通常使用 code,但在指令或寄存器名称过多的段落中看起来会很乱。 CAPS 倾向于保持可读性,而不会从段落中的其他地方(如这个)吸引眼球,并且根据系统的不同可以更容易键入。 (SO 降价使 code 变得简单。)

AND、OR 和 ADD 是常见的指令,如果您不采取任何措施使它们不同,它们在句子中会非常混乱。少了 ADDIU.

在实际的 asm 源文件中,每一行的格式都相当严格,注释通常从一致的列开始向右缩进,并且总是由特殊字符分隔(标准中的# MIPS 汇编)。这避免了任何歧义,尽管在评论中我可能会在与自由格式文本混合时使用大写约定;

addu $t0, $t1, $t2    # not ADD because we don't want to fault on signed overflow