机器指令和装配说明有什么区别?

时间:2016-10-16 14:09:18

标签: assembly cpu-architecture

我对计算机内部处理指令感到有些困惑。

在内部处理指令有两个“事物”:汇编程序和控制单元。

例如,可以将伪mips指令传递给汇编器,汇编器将其解构为相应的真op-mips指令集,然后,我推测,将这些指令逐个传递到控制单元中进行解码。

这就是MIPS指令 - 无论是伪指令还是真正指令 - 的处理方式。

但机器指令怎么样?这只是控制单元的输入吗?汇编程序与它有什么关系吗?机器指令与装配说明有何不同?

2 个答案:

答案 0 :(得分:10)

机器代码或机器语言是由计算机的中央处理单元 直接执行 的一组指令。每条指令执行一项非常特定的任务,例如CPU寄存器或存储器中的数据单元上的加载,跳转或ALU操作。 由CPU直接执行的每个程序都由一系列此类指令组成。它只包含1和0

汇编语言,是计算机或其他可编程设备的低级编程语言,其中语言与架构的机器代码指令之间存在非常强的(通常是一对一)对应关系[*]通过称为汇编程序的实用程序将汇编语言转换到可执行机器代码中。该机器代码是机器语言。转换过程称为汇编或汇编源代码。

[*]基本上你可以用机器语言来理解这一行所有它​​由0和1组成,并且它在阅读时不是很有用。 在现实生活中,很难理解0和1的非常大的序列。所以让事情变得更容易,汇编语言应运而生。它只比机器语言高一级。它只是用人类可读格式替换0和1的集合。

例如,

让我们假设 000表示机器语言的添加。 0001表示数字1。 0010表示3号。 它一起成为00000010010太难理解了.. 所以为了方便你可以在汇编中说出来

000 -> add
0001 -> some_integer1
0010 -> some_integer2

你可以写

add some_integer1,some_integer2 ;

现在更容易阅读。 最后汇编程序将把这个汇编代码[将some_integer1,someinteger2;]添加到机器代码[00000010010]中,cpu可以直接执行,使计算机很高兴用他自己的语言获取指令。 因此装配对我们而言。和机器语言是机器..: - )

要详细了解汇编语言,请访问here 对于机器语言。访问here

答案 1 :(得分:1)

机器指令只是位,1和0,输入到计算机以生成输出。汇编指令只是用汇编编写的代码,它在机器代码(1和0)中翻译,稍后由计算机使用。 要清除:汇编语言是一种用来与计算机交互的语言,就像其他语言一样。程序集直接转换为机器代码,这是计算机理解的唯一一种指令。计算机使用机器代码处理信息,每个代码处理特定任务。计算机不直接理解程序集,c或C ++,必须首先将其翻译成机器代码。