汇编语言转换成机器语言，具体在机器这个层面是如何实现的？
既然你诚心诚意的发问了，那我就大发慈悲的告诉你： 其实汇编语言里面的关键字都是一个个的助记符，也叫作指令。当处理器芯片运行时，它从内存中读取指令，每条指令可以包含一个或多个字节的信息，这些信息告诉处理器去执行不同的任务，由于每条指令都是从内存中读取出来的，所以指令执行时所需要的任何数据也都是存储在内存中的，而存储指令的内存和存储数据的内存是没什么不同的，所以就需要一个方法让处理器能分辨出哪些内存中存储的是指令，哪些内存中存储的是指令操作数。画张图表示一下一条完整的指令： Instruction Pointer即指令指针用于帮助处理器判断那些指令已经执行过了，以及哪条指令是下一次将要执行的。当然，还存在一些特殊的指令可以修改Instruction Pointer(指令指针)的位置，例如程序中的跳转指令。 类似的Data Pointer(数据指针)用于帮助处理器判断数据区域在内存中的起始位置。这个数据区域被称作"栈(stack)"。当有新的数据存放到栈中时，数据指针就会向下移，即从内存的高字节地址向低字节地址移动，也就是常说的"压栈"。当数据从栈中读取出来时，数据指针就会反方向往上移，即从内存的低字节地址向高字节地址移动，也就是常说的“弹出栈”。 举个例子：比如说 C7 45 FC 01 00 00 00 这一段： 这条指令会告诉Intel IA-32系列的处理器去加载十进制1这个值到处理器寄存器定义的内存偏移的内存中。这条指令中包含的字节信息将在下面的Opcode操作码中做解释。另外，这条指令明确的定义了处理器将要执行的功能，为了让处理器能按顺序正确的执行程序，所有的指令都必须以适当的方式和顺序存放在内存中。 每条指令中都必须至少包含一个字节，在这个字节中存放着operation code(操作码，缩写为opcode，操作码由1到3个字节组成，它唯一的定义了处理器可以执行的功能。例如，两个字节的操作码："OF A2"对应IA-32的CPUID指令，当处理器执行这条指令时，它会在微处理器的不同寄存器中存放一些特定的信息，程序员就可以通过其他指令从这些寄存器中提取出信息，通过这些信息就可以检测出当前程序所运行的微处理器的类型和型号)，这个opcode操作码定义了处理器可以执行的功能，每个处理器家族都有自己预定义好的操作码，这些操作码定义了所有可用的功能。 so，年轻人别想不开去搞这些东西 参考资料：https://pan.baidu.com/share/link?shareid=2345340326&uk=940392313&errno=0&errmsg=Auth%20Login%20Sucess&&bduss=&ssnerror=0