机器语言到底是什么?

What actually is the machine language?

本文关键字:是什么 机器语言      更新时间:2023-10-16

我已经读过很多次编译器将高级代码翻译成机器语言,每当我谷歌"机器语言"时,它都会告诉我它是汇编语言。另一方面,当我打开一个用记事本用 c++ 编写的 hello world 应用程序时,它向我展示了一些除了汇编之外的东西。这些东西背后的秘密到底是什么,二进制和位是从哪里来的?请解决我的困惑。

在最低级别,机器语言没有人类可读的语法。程序是以这样一种方式排列的数字序列,当由 CPU 解释时,调用程序算法请求的指令序列。

汇编语言是机器语言的人类可读表示。CPU 无法直接解释汇编语言,因此需要在两个表示之间执行转换步骤。您可以在可执行文件上运行反汇编程序,以查看其表示为汇编语言助记符的指令。

这有点类似于字符串,字符串对人类来说是字符串,但对计算机来说,它们只是数字序列。例如,当你写"ABC"时,计算机会看到一个数字 65、66、67 的序列。它需要一个编辑器程序在数字表示(数字)和人类可读表示(字母)之间切换。

同样,一系列指令

AND #0F
OR  #30

在简单的 41 位 CPU 的机器代码中看起来像 41、15、09、48。汇编语言的翻译器会将上面的文本变成四个数字;拆装器会将四个数字变回人类可读的文本。

机器语言是构成可执行代码的原始十六进制或二进制字节流。

汇编语言是人类可读的机器语言的面向助记符的中间表示。 从机器语言开始,它是对机器语言所说的解释。

你写C++;编译器前端生成IR(中间表示)代码(例如,在LLVM/Clang的情况下,这是一种SSA语言形式),优化器调整IR,编译器后端将优化的IR转换为符号汇编(对于目标CPU),汇编器将asm转换为机器代码(CPU可以执行的指令和数据的实际数值)。

机器语言是最底层的编程语言(使用可编程微码的计算机除外)。 机器语言是唯一被计算机理解的语言。

计算机不理解我们用 c++ 编写的普通代码。它只能理解二进制形式的代码,即目标代码形式。

您可以在此处了解更多信息 http://www.brighthubengineering.com/consumer-appliances-electronics/115635-machine-language-vs-high-level-languages/