存储程序计算机(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代码