use*_*334 0 assembly instruction-set cpu-architecture machine-code micro-architecture
汇编代码和机器代码是由架构指定的吗?我知道你如何实现架构对你来说是不重要的(微架构可以实现架构)。但我不明白汇编或机器代码是否是由架构指定的?
机器码由CPU解码;它的格式以及每条指令的行为是 CPU 实现的指令集架构的一部分。
汇编源代码是任意的,仅由软件(汇编器和反汇编器)处理。正如 @old_timer 喜欢说的,汇编是由软件工具定义的,而不是由 CPu 定义的。
通常,供应商会定义一个 asm 语法,以便在记录 ISA 如何工作时在手册中使用它,例如寄存器名称和指令名称。因此它被用在 ISA 文档中,但主要是作为向人类描述它的一种方式。(或者也作为供应商推荐的汇编语言的规范。)
对于许多现实世界的 ISA,没有人觉得有必要为相同的机器代码格式发明不同的文本语法。(也许 Go 及其衍生的 Plan 9 生态系统除外。)
但某些 ISA(最著名的是 x86)具有许多不同的文本语法。x86 机器代码在如何编码相同指令方面存在一些冗余,并且某些语法允许覆盖以指定细节。但这并不是人们发明不同语法的原因。
Intel 语法有多种风格 ( https://stackoverflow.com/tags/intel-syntax/info),Intel和 AMD 手册中使用的语法。MASM/TASM 非常相似,而 NASM/FASM 有一些不同的解释。这只是指令语法;汇编器之间的指令也有所不同,它们在指令、操作数和寻址模式的语法上基本一致。
AT&T 的设计看起来更像 PDP-11 语法,目标操作数位于右侧,并%在寄存器名称上进行修饰以使解析更简单。 https://stackoverflow.com/tags/att/info
| 归档时间: |
|
| 查看次数: |
79 次 |
| 最近记录: |