【发布时间】:2021-05-13 21:56:23
【问题描述】:
维基百科指出:
计算中的高级汇编程序是汇编语言的汇编程序,它结合了高级编程语言中的特性。
接着说:
高级汇编程序通常提供直接一对一汇编成低级机器代码的指令,就像在任何汇编程序中一样,加上控制语句,如 IF、WHILE、REPEAT...UNTIL 和 FOR、宏和其他增强功能。
最后,它指的是一些高级汇编程序:
最近的高级汇编器有 Borland 的 TASM、NASM、Microsoft 的 MASM、IBM 的 HLASM(用于 z/Architecture 系统)、Alessandro Ghignola 的 Linoleum 和 Ziron。
其中,我只用过NASM,但我能理解为什么它是一个高级汇编器;它通常具有结构、宏和非常广泛的预处理器。但是,当我看到 FASM 的 Wikipedia 页面时,它会将 FASM 称为低级汇编程序,我并没有真正理解。 FASM 不仅支持结构体和宏(我对预处理器了解不多),还支持汇编时的 if 语句。是否有任何其他规则指定汇编程序是高级还是低级? FASM 维基百科页面说它故意不支持许多命令行选项,但仅此一项就使其成为低级汇编程序吗?
【问题讨论】:
-
NASM 没有组装成机器代码的
IF或WHILE指令,只有%if和%rep是预处理器的汇编时控制流指令。不是运行时。它确实有预处理器宏,但 FASM 也有。我不会称 NASM 为“高级别的”。 -
高级和低级等术语是相对术语,在旁观者眼中。它们既是事实,也是意见。我不会太担心将这些术语视为具有硬规则的定义,因为它们是具有规则的定义。在这种情况下,作者心中有一个定义并采取了行动。另一页的作者心中有一个定义并采取了行动。有很多属于这一类的术语,从嵌入术语开始,但也包括术语汇编语言和汇编器。
-
是的,这是有道理的。我想我只是希望它是一个事实/如果它在维基百科页面上被广泛接受。