在过去的3到5年里,我一直在C和CPython工作.考虑一下我的知识基础.
如果我要使用汇编指令(如MOV AL, 61h支持它的处理器),处理器内部究竟是什么解释此代码并将其作为电压信号发送?如何进行如此简单的指导?
当我试着想到包含MOV AL, 61h甚至包含的众多步骤时,大会甚至感觉像是一种高级语言XOR EAX, EBX.
编辑:我读了一些评论,询问为什么我把它作为嵌入式,当x86系列在嵌入式系统中不常见时.欢迎来到我自己的无知.现在我想,如果我对此一无所知,也有可能其他人也对此一无所知.
考虑到你们在答案中付出的努力,我很难选择一个最喜欢的答案,但我觉得有必要做出决定.没有伤害感情,伙计们.
我经常发现,我对计算机的了解越多,我就越不会意识到我真正知道的.感谢您对微码和晶体管逻辑的开放态度!
编辑#2:感谢这个帖子,我刚刚理解了为什么XOR EAX, EAX比这更快MOV EAX, 0h.:)
我已经完成了编译器课程并自己制作了一个基础知识,我对第一个编译器仍然存在这种挥之不去的疑问.
从高级别到低级别,我看到运行的代码可以说是C或C++,它可以通过它的编译器转换为相应的汇编语言(比如说gcc).此代码依赖于平台(假设我在intel x86架构上).
现在问题是,硬件如何运行程序集?
我记得从我的计算机组织类中,每个汇编语句都转换为特定的格式(取决于处理器),例如,像mov ax,bx这样的语句被转换为它的操作码,比如0110 101010 101000.假设汇编程序解析我的汇编语言程序中的每个语句都将其转换为机器代码,那么第一个汇编程序是如何编写的?