什么是机器语言?

S.S*_*aad 1 c++ assembly machine-language

我已经多次读过编译器将高级代码翻译成机器语言,每当我谷歌"机器语言"它告诉我它是汇编语言.另一方面,当我用记事本打开用c ++编写的hello world应用程序时,它向我展示了除了汇编之外的任何东西.实际上这个东西背后的秘密是什么,以及二进制和位进入的位置是什么?请解决我的困惑.

das*_*ght 5

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

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

这有点类似于字符串,字符串是人类的字符串,但对于计算机而言,它们只是数字序列.例如,当您编写时"ABC",计算机会看到一系列数字65,66,67.编辑程序需要在数字表示(数字)和人类可读表示(字母)之间进行.

同样,一系列指令

AND #0F
OR  #30
Run Code Online (Sandbox Code Playgroud)

简单的8位CPU的机器代码中看起来像41,15,09,48 .汇编语言的翻译将上面的文本变成四个数字; 反汇编程序会将四个数​​字转回人类可读的文本中.