代码改变世界

机器级表示

2011-05-12 09:46  justvi  阅读(140)  评论(0编辑  收藏  举报

平坦寻址方式:将整个存储空间看做一个大的字节数组

机器级程序两种重要的抽象:1、指令集体系结构,定义了处理器状态、指令格式及指令对状态的影响 2、虚拟地址空间

处理器状态:

1、程序计数器pc:下一条指令在存储器中的地址

2、整数寄存器:存储32位值,存储指针或整数数据,保存重要的程序状态、临时数据(过程的局部变量、返回值)

3、条件码寄存器:最近执行的算术或逻辑指令的状态信息,实现条件、循环语句等

4、浮点寄存器:存放浮点数

操作数类型:

1、立即数:常数值,ATT格式汇编代码中表示为$0x1F

2、寄存器:寄存器的内容

3、存储器引用:根据计算出来的地址访问某个存储器位置

数据传送指令:

pushl:将双字压栈

        pushl        S     <=>     R[%esp] <— R[%esp]-4

                                          M[R[%esp]] <— S

        因为栈向下增长,即向低地址增长,所以在压栈时将栈顶地址减4

        popl         D     <=>     D <— M[R[%esp]]

                                          R[%esp] <— R[%esp]+4