是否有编程语言“下面”汇编?

时间:2008-11-05 19:22:14

标签: assembly machine-code microcoding

“Assembly”下面是否有编程语言?

17 个答案:

答案 0 :(得分:71)

实际上,有一定级别的代码位于机器代码下方,称为Microcode

答案 1 :(得分:38)

Machine code。时间是程序员用二进制的1和0编码的。 Hex被认为是对此的进步。那是在汇编之前,它使用代码的名称并将指令的各个部分分成它们的部分。

答案 2 :(得分:18)

Assembly是机器代码的文本表示。它有一个语句,表示CPU本身内的单个指令。例如,“MOV X,Y”是一条指令,它通过CPU并将值X移动到位置Y.要获得机器代码,CPU将有一个代表“MOV”的数字和一个代表的数字'X'(如果它不是数字)和一个代表Y的数字。这些原始HEX二进制值是机器代码。这是导致CPU通过晶体管引导电压/电流以使其完成工作的数字。

机器代码是较低级别,但它非常接近程序集。它非常接近,没有人会因为能够读取“MOV”=移动指令的优点而烦恼它。变量名也变得可读,而不是堆栈或堆中的原始地址。

答案 3 :(得分:12)

更低,(不是“语言”一词适用于“机器”语言或更低的物理层),但机器语言以下是用于实际实现每个门的许多门和开关的配置所涉及的特定硬件(CPU)的二进制操作码...一本很好的书,涵盖了更低层次,由Charles Petzold编写,名为“CODE

答案 4 :(得分:8)

如果在下面,你的意思是较低的水平,那么是。有机器语言。程序集在运行之前就会变成机器语言。在许多现代流程中,机器语言是在微代码中模拟的。有关微代码的详细信息,请参阅this

答案 5 :(得分:6)

答案 6 :(得分:6)

我认为你能得到的最低价是物理学或TRW(真实世界)。这就是芯片设计人员和制造商用来创建CPU和其他处理器的能力,这些处理器可以将计算机语言的输出转化为有价值的东西。

答案 7 :(得分:3)

汇编语言是编程语言构建的较低层,因为机器代码不是一种语言,因为它不涉及任何语法规则。机器代码可能是执行微处理器操作的唯一数据格式:CPU从存储器中提取数据并根据提取的机器代码直接执行指令。

然而,在一些最近的设计中,例如Intel Pentium 4及更高版本,机器代码表示较低级别的RISC执行单元操作,称为uops或微操作。因此,这些设计的解码逻辑是将CISC类型的指令转换为小的uop,这些指针通常针对更简单的加载/存储单元,类似RISC。在这方面,我们可以说(尽管这可能在技术上并不精确)机器代码描述了架构的“更高级”复杂指令,而不是由CPU的底层执行逻辑原子地执行的“真实”操作。 。

因此,我们有一个架构指令集,或架构机器代码,以及一个隐藏在外部世界的内部“微指令”集。  英特尔处理器的跟踪缓存被设想为存储此类操作以优化处理器的超标量性能(因为CPU执行uops而不是可由程序执行的架构指令集)。

答案 8 :(得分:3)

取决于你问的原因。你可以通过其他方法做任何你不能做的装配。机器代码只是完全相同数据的另一种表示。

答案 9 :(得分:3)

嗯,就像其他人提到的那样,有机器语言。机器语言通常是您在汇编中编写的一对一翻译,因此它与汇编代码处于相同的抽象级别 - 手工编写起来要困难得多。

这有例外,例如MIPS汇编语言提供的pseudo-instructions

有,或者我应该说 甚至低于汇编/机器语言:microcode。现代逻辑晶体管预算就像它们一样,我怀疑微码正在失去它的相关性。

答案 10 :(得分:3)

最初的计算机(ENIAC)使用硬接线,因此一次计算的输出可以作为输入馈送到另一台计算机。要运行另一个程序,您必须拔下一些电缆并重新连接它们。

答案 11 :(得分:3)

汇编程序将汇编程序转换为机器代码。你可以用二进制编辑器编写它。 (哎哟!) CISC计算机可以具有微码,其对芯片的片段(ALU,存储器取出等)进行排序。通常情况下,除芯片制造商外,没有人会编写微码。

答案 12 :(得分:2)

嗯,您总是可以用二进制(或十六进制或其他表示形式)编写代码。然后你必须计算你头脑中的跳跃偏移等。不建议。 ;)

答案 13 :(得分:2)

甚至低于机器代码,人们可以说,是VHDL - 芯片设计。您甚至不需要设计芯片来执行代码,而只需将输入立即转换为输出。

(不是我是专家 - 我正在使用C ++)

答案 14 :(得分:2)

当然:“机器代码”,维基百科在汇编语言(http://en.wikipedia.org/wiki/Assembly_language)的文章中说:“实现数字机器代码的符号表示和编程特定CPU所需的其他常量体系结构“。

答案 15 :(得分:2)

排序。机器不读取汇编,它们读取“机器语言”,即汇编转换成的内容。机器语言有“操作码”而不是汇编的助记符,这些操作码通常只是二进制数据。机器代码通常不被认为是人类可读的。

在RISC系统上,机器代码通常是汇编的直接转换,但在x86系统上,特别是两者完全不同。

答案 16 :(得分:1)

您可以将电流发送到CPU并告诉它放置像素的位置。 (几乎是二进制文件,但你不使用计算机来编写它。)