ine*_*ero 1 assembly cpu-architecture
我对计算机内部如何处理指令感到困惑.
内部有两个处理指令的"东西":汇编程序和控制单元.
例如,可以将伪mips指令传递给汇编器,汇编器将其解构为相应的真op-mips指令集,然后,我推测,将这些指令一个接一个地传递到控制单元中进行解码.
这就是MIPS指令 - 无论是伪指令还是真正指令 - 的处理方式.
但是机器指令怎么样?这只是控制单元的输入吗?汇编程序与它有什么关系吗?机器指令与装配说明有何不同?
san*_*eev 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
Run Code Online (Sandbox Code Playgroud)
你可以写
add some_integer1,some_integer2 ;
Run Code Online (Sandbox Code Playgroud)
现在它更容易阅读.最后汇编程序将把这个汇编代码[将some_integer1,someinteger2;]添加到机器代码[00000010010]中,cpu可以直接执行,使计算机很高兴用他自己的语言获取指令.因此装配对我们而言.和机器语言是机器.. :-)
要阅读有关汇编语言的更多信息,请访问此处 和使用机器语言.访问这里