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

问题描述

我目前正在学习计算机组织方面的课程,并且一直在研究 MIPS-32 架构。我注意到我们使用的这本书以小写形式列出了操作码,而教授则以大写形式列出了操作码。我在不同的网站上查了一下,发现有些网站的操作码全部为大写,而其他网站的操作码全部为小写。我在 Stack Overflow 上寻找了类似的问题,但没有找到。

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

ADD $s2,$s1,$s0

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

add $s2,$s0

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

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

解决方法

那些不是 opcodes(二进制机器码的一部分),它们只是 asm mnemonics,汇编器的文本输入。 (请注意,“操作码”有时用于表示整个二进制指令,包括对操作数进行编码的部分,但这很愚蠢,因为我们已经有了“指令”这个词。)

大多数汇编程序(以及所有 MIPS 汇编程序 AFAIK)对助记符和寄存器名称不区分大小写。
一种很好的现代风格约定是使用小写字母表示真正的助记符,大写字母表示宏。

所有大写字母(包括操作数)曾经很常见,特别是对于 8 位 / 16 位 CPU 和微控制器(甚至是较旧的早期计算机),但肯定被某些人用于其他系统,包括更现代的

文档中,您想自由地将指令名称与文本混合并谈论关于指令,通常在所有大写字母中编写助记符,尽管 boldcode 也可以。考虑到印刷格式的书籍和材料通常有利于大写字母。网上的东西,例如Stack Overflow 的答案通常使用 code,但在包含太多指令或寄存器名称的段落中它可能看起来很混乱。大写字母往往保持可读性,而不会从段落中的其他地方(如这个)吸引眼球,并且根据系统可以更容易输入。 (所以降价使 code 变得容易)。

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

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...