Almare

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

 

存储程序计算机(The stored program computer)

  • 内存存储指令和数据
  • CPU解释指令

 

X86实现(X86 implementation)

 

Registers(寄存器)

  • 通用寄存器(General-Purpose Registers)
  • 段寄存器(Segment Registers)
  • 标志寄存器(EFLAGS Register)
  • X86_64寄存器(X86_64 Registers)

 

内存(Memory)

  •  movl %eax,%edx               edx = eax;                                  寄存器模式(register mode):以%开头的寄存器标识符
  •  movl $0x123,%edx           edx = 0x123;                                   立即数(immediate):
  •  movl 0x123,%edx            edx = *(int32_t*)0x123;                直接寻址(direct):直接访问一个指定的内存地址的数据
  •  movl (%ebx),%edx      edx = *(int32_t*)ebx;                    间接寻址(indirect):将寄存器的值作为一个内存地址来访问内存
  •  movl 4(%ebx),%edx     edx = *(int32_t*)(ebx + 4) ;      变址寻址(displaced):在间接寻址之时改变寄存器的数值   

  说明:movl表示32位指令,后面是等价的C代码   

 

posted on 2015-03-07 18:29  Almare  阅读(243)  评论(0编辑  收藏  举报