汇编指令集与cpu指令集的关系

汇编是助记符,由于人要自己去记机器码真实太伤了,所以用一些稍微美观的的符号记一下。这外面有这么几个point:

1. 一个汇编指令会对应多种不同的机器码,比如MOV指令,实践编码的时分是分8位 16位 32位 64位,是寄存器->寄存器 内存-> 寄存器 寄存器->内存, 内存又要思索各种寻址方式,变成机器码的时分都有出入,所以汇编实践上还有一定水平的笼统,把一组含义接近的机器码一致成一个指令

2. 不是所无机器码都能找到汇编何其对应的,由于存在一个指令边界的效果:每条指令不只是一个byte,所以运用机器码的时分,完全可以jmp到别的指令的中间末尾执行,这种状况要用汇编来表示是很困难的。

3. 详细到编译器,把生成编译器汇编代码 汇编器生成机器码两者分开是有益处的,由于这样你的编译器就不用途理汇编器那一坨复杂的编码的逻辑了

4. 当然完全可以编译器不发生汇编,直接生成机器码,印象中tcc就是这么干的

提供最优质的资源集合

立即查看 了解详情