Assembly下面是否有编程语言?

Assembly下面是否有编程语言?

实际上,机器码下面有一层代码,称为微码 。

机器代码 。 时间是程序员在二进制的1和0中编码的时间。 hex被认为是一个进步。 这是在汇编之前,它使用代码的名称,并将指令的各个部分分开。

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

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

甚至更低,(不是说“语言”一词适用于“机器”语言或更低的物理层),但是在机器语言之下的是用于实际实现每个二进制操作码的许多门和开关的configuration所涉及的特定硬件(CPU)……一本很好的书籍涵盖了这个更低层次的是由Charles Petzold所着的“ CODE ”

如果下面,你的意思是低一级,那么是的。 有机器语言。 汇编程序在运行之前转换为机器语言。 在许多现代的过程中,机器语言都是用微码模拟的。 看到这个微码的更多细节。

我认为你能得到的最低点是物理或TRW(真实世界)。 这就是芯片devise师和制造商用来创buildCPU和其他处理器,可以把计算机语言的输出转化为有价值的东西。

取决于你问的原因。 没有什么,你不能在组装,你可以通过其他方法做。 机器码只是完全相同的数据的另一种表示。

第一台计算机(ENIAC)使用硬布线,以便一个计算的输出可以作为input提供给另一个。 要运行另一个程序,您必须拔下一些电缆,然后重新接线。

汇编器被汇编器翻译成机器码。 你可以写一个二进制编辑器。 (Ouch!)CISC计算机可以有微码,它可以对芯片段(ALU,内存提取等)进行sorting。 通常,除了芯片制造商之外,没有人写微码。

那么,就像其他人所说的那样,机器语言也是如此。 机器语言通常是您在汇编中编写的内容的一对一翻译,因此它与汇编代码处于相同的抽象层次 – 手写难度更大。

这也有例外,就像MIPS汇编语言提供的伪指令一样。

有,也许我应该说一个低于汇编/机器语言的水平: 微码 。 现代逻辑晶体pipe预算正在成为现实,我怀疑微码正在失去其相关性。

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

但是,在最近的一些devise中,比如Intel Pentium 4以上,机器码就是RISC执行单元较低层的performance操作,称为微操作或微操作。 所以这些devise的解码逻辑是将CISCtypes的指令转换成通常针对简单的加载/存储单元(类似RISC)的小型微指令。 在这方面,我们可以说(虽然这在技术上可能并不准确),机器码描述了架构的“高级”复杂指令,而不是由CPU的底层执行逻辑自动执行的“真实”操作。

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

那么,你总是可以用二进制(或hex,或其他表示forms)编写代码。 然后,你必须计算跳跃偏移等。 不build议。 ;)

有点。 机器不读取程序集,他们读取“机器语言”,这是什么汇编转换成。 机器语言有“操作码”而不是汇编的助记符,这些操作码通常只是二进制数据。 机器代码通常不被认为是可读的。

在RISC系统上,机器代码通常是组件的简单转换,但在x86系统中,特别是两者完全不同。

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

甚至低于机器码,可以说是VHDL芯片devise。 您甚至不需要devise芯片来执行代码,而是立即将input转换为输出。

(不是我是一个专家 – 我使用C ++)

你可以发送电stream到CPU,并告诉它在哪里放置像素。 (相当多的二进制文件,但是你不用计算机来写它。)

Interesting Posts