程序集只在软件中实现吗?

时间:2015-02-08 20:01:13

标签: assembly cpu cpu-architecture

我有一些困惑

  • 汇编仅在带汇编程序的软件中实现吗?
  • 谁更新和编写汇编程序?

  • cpu是否甚至不知道汇编存在?

  • 如果让我们说英特尔发布新的cpu并添加新指令,那么需要采取哪些措施来使用这些新指令?

    我的意思是最后cpu只执行机器代码,然后通过微代码引擎转换为电信号。

3 个答案:

答案 0 :(得分:4)

  

汇编是否仅在带汇编程序的软件中实现?

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

  

谁更新和编写汇编程序?

任何喜欢从MASM from Microsoft等大型软件公司到The netwide assembler (NASM)等开源项目的人。

创建处理器的公司指定了指令集,任何人都可以编写一个汇编到该集合的汇编程序。

  

cpu是否甚至不知道汇编存在?

完全。处理器只执行机器代码,无法通过编译汇编源代码或Visual Basic源代码来了解它。

  

如果让我们说英特尔发布新的cpu并添加了新的说明,   要利用这些新指令需要做些什么?

只需在代码中输入指令的字节代码,就可以直接在汇编程序中使用它们。如果要使用汇编操作代码来使用它们,则需要在汇编程序中添加它们。

答案 1 :(得分:3)

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

当然,汇编程序提供的编码对于人类阅读,写作和理解来说更方便。它的发明特别考虑到了这一目标。

汇编程序是由人类编写的。例如,FASM已经编写并得到了来自波兰的杰出程序员和数学家Tomasz Grysztar的支持。

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

答案 2 :(得分:2)

  

汇编是否仅在带汇编程序的软件中实现?

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

  

谁更新和编写汇编程序?

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

  

cpu是否甚至不知道汇编存在?

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

  

如果让我们说英特尔发布了一个新的cpu并添加了新指令,那么需要采取哪些措施来使用这些新指令?

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