前言:
这几篇文章的目的:
从高级语言程序出发,用其对应的机器级代码以及内存(栈)中信息的变化来说明底层实现
参考资料:
计算机系统基础——袁春风
CSAPP
第一篇:不同层级程序指令间的转换
关键词:【指令】
> 计算机的指令分类:
伪指令:机器指令序列
机器指令:机器指令和汇编指令一一对应
汇编指令:机器指令的汇编语言
微指令:微程序级指令,属于硬件范畴,这点组成原理上有讲过。
其中汇编指令和机器指令都属于机器级指令。
启发:
汇编在转换为机器指令时并没有进行优化,相同的汇编程序在执行时带来的效率差 别应该源于硬件的不同。
ISA(指令级体系结构)
的存在使得汇编更方便移植。
在此可见ISA在整个计算机系统抽象层中的重要性。
>
生成机器代码的过程:
用 GCC + Linux + IA32 平台进行实验
程序转换四个步骤:
1. 预处理
引入#include<文件>和处理宏语句
2. 编译
将处理后的源程序文件编译成相应的
汇编语言程序
。
3. 汇编