深入理解计算机系统(第三版)第三章重要内容摘要

3.3数据格式

 3.4访问信息

x86-64包含的一组共16个存储64位值的通用目的寄存器

 

 3.4.1操作数指示符

 3.4.2数据传送指令

 

 

 3.4.4压入和弹出数据栈

 

 3.5算数和逻辑操作

 

 3.5.1加载有效地址

 

3.5.2一元和二元操作 

 

3.5.3移位操作

 3.5.5特殊的算数操作

 

 

 3.6控制

3.6.1条件码

CF:carry-over,ZF:zero,SF:symbol,OF:over-flow

 

 

 3.6.2访问条件码

e:equal,n:not,s:symbol,g:great:l:less,a:above,b:below

 

 

 3.6.3跳转指令

 

 

 

 3.6.5用条件控制来实现条件分支

 

 3.6.6用条件传送来实现条件分支

 

 

 

 3.6.7循环

1.do-while循环

 2.while循环

 

 3.for循环

 

 3.6.8switch语句

3.7过程

 3.7.1运行时栈

 3.7.2控制转移

 3.7.3数据传送

 

 参数7位于栈顶(重要)

3.7.4栈上的局部存储

 3.7.5寄存器中的局部存储空间

 3.7.6递归过程

3.8数组分配和访问

3.8.1基本原则

 

 3.8.2指针运算

 3.8.3嵌套的数组

 

 

 3.8.4定长数组

 3.8.5变长数组

 

 

 3.9异质的数据结构

3.9.1结构

 3.9.2联合

 

 

 

 3.9.3数据对齐

 

 

 

 3.10在机器级程序中将控制与数据结合起来

3.10.1理解指针

 

 

 

 

 

 

 3.10.2应用:使用GDB调试器

 

 3.10.3内存越界引用和缓冲区溢出

 

 

 

 3.10.4对抗缓冲区溢出攻击

 

 

 

 3.10.5支持变长栈帧

 

 3.11浮点代码

 

 AVX512和AVX2相比

1、寄存器变化(与AVX2相比,不仅寄存器的宽度从256位增加到512位,而且寄存器的数量也增加了一倍,达到32)

2、比AVX2提供高达8倍的性能提升,由于并行处理了16条消息

3.11.1浮点传送和转换操作

 

 

 3.11.2过程中的浮点代码

 

 3.11.3浮点运算操作

 3.11.4定义和使用浮点数

 3.11.5在浮点代码中使用位级操作

 3.11.6浮点比较操作

 

 

 3.11.7对浮点代码的观察结论

 

原文地址:https://www.cnblogs.com/GodZhuan/p/14258379.html