指令集架构是二进制(不可读)还是人类可读?

时间:2016-02-05 23:20:39

标签: assembly architecture isa machine-language

  1. 如果我是正确的,ISA就是机器中的指令集 语言。 ISA 0/1二进制序列中的指令也是如此吗?
  2. 为什么我看到ISA中的说明是人类可读的单词 图书?

    表示指令的人类可读单词 ISA与汇编语言中使用的助记符相同 ISA?

    ISA中的指令的人类可读单词是否属于 ISA?

    如果是,是否有翻译过程从人类转化 ISA中对机器语言的可读指令,就像一个 汇编程序将汇编语言翻译成机器语言?

  3. 感谢。

2 个答案:

答案 0 :(得分:1)

ISA至少定义指令的名称以及指令及其操作数的二进制编码。它还可以定义要使用的汇编语法/语义,即人类可读的形式。

但是,实际的编译器可以使用不同的语法。例如:对于IA32 ISA(x86),有Intel和AT& T汇编程序样式。两者都不同,结果寄存器是指定为汇编指令中的第一个还是最后一个操作数。

答案 1 :(得分:1)

书中人类可读的单词称为汇编语言,是的,一个称为汇编程序的工具将汇编语言转换为机器代码,这只是对逻辑有意义的零和零。您也可以反汇编机器代码并以汇编语言结束。

特定处理器的一组或一组指令称为指令集或指令集架构或ISA。

机器代码非常重要,这就是处理器的操作方式。人类可读的汇编语言不一定有标准。设计处理器的公司通常会创建一个包含机器代码和汇编语言的文档,通常它们会创建或创建一个与汇编语言匹配的汇编程序。但这并不构成标准。任何人都可以发明他们想要的任何汇编语言和汇编程序,只要它产生机器代码(如果他们希望它有用,可能会创建随机垃圾,如果这是他们的目标就让它崩溃)。

对于同一处理器系列,intel vs at& t格式对于不同的汇编语言而言是众所周知的。但是那些使用gnu汇编程序端口的人也倾向于搞乱原始的汇编语言。大多数指令,汇编语言的非指令部分是从一个汇编程序到另一个汇编程序可能不同的部分。只要你的汇编程序和/或编译器为该目标制作工作机器代码,你就可以坐下来自己做,并梦想你想要的任何语法。

因为你真的必须有一个汇编程序来开发和测试一个新的指令集...你有一个汇编程序......当移植编译器或语言时,那个作者不必疯狂阅读二进制机器代码,可以只输出汇编语言然后生成汇编程序。这是一种非常常见的方法,但是由于各种原因,一些编译器直接使用机器代码。 JIT,或者#34;因为我可以"。