我曾学习编译器,并亲自制作了简单的编译器,但对于第一款编译器仍有疑虑。
从高级别到低级别,C或C++代码通过相应的编译器(例如gcc)转换为特定平台的汇编语言等效代码(例如,我在intel x86架构上)。这段代码是依赖于平台的。
现在问题来了,硬件如何运行汇编代码?
我记得在计算机组成原理课程中,每条汇编语句都会被转换成一个特定格式(取决于处理器),例如,mov ax,bx语句会被转换为其操作码,比如:0110 101010 101000 。假设汇编器解析我的汇编语言程序中的每个语句并将其转换为机器码,那么第一款汇编器是如何编写的呢?