汇编仅在软件中实现吗?

Is assembly implemented only in software?

我有一些困惑

Is assembly implemented only in software with assembler?

汇编是一种非常接近机器代码的语言。ose。所以必须考虑软件。

Who updates and writes assemblers?

所以对指令集有很好了解的人都可以写汇编程序,但他也需要知道object file format。这意味着他还必须知道 os 如何想要这种格式。 Cpu 制造商拥有所需的知识,但如果提供足够的文档,每个人都可以像开源社区一样编写汇编程序。

Is the cpu not even aware that assembly exists?

Cpu 不知道机器代码是如何生成的。它只是执行机器指令。

If let's say Intel releases a new cpu with added new instructions, what needs to be done to utilize those new instructions?

如果英特尔添加新指令,则必须通过为这些指令添加新的助记符来更新汇编器。

汇编语言只不过是机器指令编码的一种形式,与十六进制或十进制数相同,并添加了一些用于描述内存中数据字段的指令。 (注意,在冯诺依曼架构中,数据和可执行代码没有区别)

当然,汇编程序提供的编码更便于人类的阅读、书写和理解。它是专门为实现这一目标而发明的。

汇编器是人写的。例如,FASM 由来自波兰的杰出程序员和数学家 Tomasz Grysztar 编写并提供支持。

NASM 是另一个很好的汇编程序。它是由一组程序员编写的。

Is assembly implemented only in software with assembler?

是的。汇编语言和其他任何语言一样是一种编程语言,它只是使用非常接近处理器指令集的操作代码。它仍然从包含源代码的文本文件编译为处理器可以使用的机器代码。

Who updates and writes assemblers?

来自 MASM from Microsoft, to open source projects like The netwide assembler (NASM).

等大型软件公司的任何喜欢的人

创建处理器的公司指定了指令集,任何人都可以编写编译为该集的汇编器。

Is the cpu not even aware that assembly exists?

没错。处理器只执行机器代码,它不知道它是编译汇编源代码还是Visual Basic源代码创建的。

If let's say Intel releases a new cpu with added new instructions, what needs to be done to utilize those new instructions?

您只需将指令的字节代码放入代码中,即可直接在汇编器中使用它们。如果要使用汇编操作码来使用,需要在汇编器中添加。