比如,下面这些数字就是存放在内存中的8086指令
B8 3F 00 01 C3 01 C1
他们的意思是
将立即数003FH传送到寄存器AX;
将寄存器BX的内容和寄存器AX的内容相加,结果在BX中;
将寄存器CX的内容和寄存器AX的内容相加,结果在CX中。
这三个的汇编语言是
mov ax,3FH
add bx,ax
add cx,ax
那么把这三条汇编语言输到计算机里面,计算机怎么把这三条汇编语言变成机器指令的?谢谢!
这个编译的过程是怎么完成的?
追答就是翻译,将汇编转成二进制文件保存
你可以打开可执行文件EXE里面全是二进制的,
其实说白了,硬盘里只保存2种文件,一种是指令文件,一种是信息文件,指令文件可被CPU执行,就是可执行文件,信息文件存放的是数据,CPU无法执行,当然也不是无法执行,只不过这些对于CPU来说都是乱码,执行毫无意义
具体原理学多了就知道了
每一条的汇编指令对应相应的机器指令,所以有了指令集和指令编码这回事
编写完汇编之后,使用汇编器汇编这个你写的汇编代码
汇编器根据内置的指令集把你的汇编指令替换成相应的机器指令就行
最后加上相应的可执行文件头就行,Windows是PE头,Linux是ELF文件头