阅读:        作者:并排逗比北边跑

《深入理解计算机系统》3.2程序编码


程序编码

在Unix机上使用命令

编译代码

优化编译的等级越高,编译时间越长,程序性能越高

机器级代码
对于机器级编程,两种抽象尤为重要
第一种
机器级程序的格式和行为(ISA指令集体系结构)
第二种
机器级程序使用的存储器地址是虚拟地址
机器级代码把存储器看成一大块数组罢了


汇编代码案例
具体的代码作用是后面章节才讲的


学完寄存器和栈后才画出的图,书上某些部分例子没有讲全,搜了很多资料,可能这些部分是再靠后的章节才讲
相关资料链接
#url-1    给了非常详细的一段函数的汇编及其解释




其中CPU主要包含以下几个对象
程序计数器(PC):记录下一条指令的地址。
整数寄存器文件:共8个,可以存储一些地址或者整数的数据。
条件寄存器:保存算数或逻辑指令的状态信息,可以实现程序的流程控制。
浮点寄存器:存储浮点数。

程序存储器:包含程序可执行机器代码,操作系统需要的一些信息,操作系统负责管理虚拟地址空间,将虚拟地址翻译成实际处理器存储器中的物理地址



ATT与Intel汇编代码风格区别


ATT

Intel


  • Intel省略了指示大小的后缀,mov,而不是movl
  • Intel省略了寄存器名字前面的%,esp而不是%esp
  • Intel用不同的方式描述存储器的位置,"DWORD PTR [ebp+8]"而不是8(%ebp)






Tags: 计算机系统   计算机   计算   编码   系统