教材学习内容总结
X86寻址方式经历三代:
DOS时代的平坦模式,不安全,原因是没有区分用户空间和内核空间
8086的分段模式:
IA32的带保护模式的平坦模式
程序编码命令
gcc是Linux上默认的编译器,gcc -01 告诉编译器使用第一级优化。优化等级越高,程序运行的越快,编译时间越长,用调试工具调试程序越困难。但是,从得到程序性能方面考虑,第二级优化被认为是较好的选择。
汇编器将汇编代码转换成二进制目标代码,目标代码是机器代码的一种形式,包含所有指令的二进制表示,但没有填入地址的全局值。汇编代码有一个主要特点,就是它用可读性更好的文本格式来表示。能够理解汇编代码以及它与原始C代码的联系,是理解计算机如何执行程序的关键一步。
机器级代码
对于机器级编程来说,其中有两种抽象尤为重要:一种为机器级程序的格式和行为,定义为指令集体系结构,他定义了处理器状态、指令的格式、以及每条指令的对状态的影响。第二种为机器级程序器级程序使用的存储器地址是虚拟地址。一条机器指令只执行一个非常基本的操作。
关于格式的注解
所有以'.'开头的行都是知道汇编器和链接器的命令。需要记住的一点是:再有多个操作数的指令情况下,列出操作数的顺序相反。当在两种格式间进行转换的时候,这一点非常令人困惑.
数据格式
单精度:4字节 双精度:8字节 扩展精度:10字节实际存储成12字节moveb、movw、movl:对应字节、字、双字。
现在还不清楚为什么会出现warning,还要慢慢研究一下。