参考文章地址
整体加载图

汇编执行令
- mov: 赋值
- movl: mov long 四个字节,告知编译器的。
- sub : 相减
- sub a, a 清零操作
- xor: 异或
- xor a,a 清零操作
- jmpi: 段间跳转指令
- pushf: 标志寄存器压栈
- popf:标志寄存器出栈
- cld: 将寄存器DF标志位置0
- std: 将寄存器DF标志位置1
- rep: 重复
- ret: 返回
- call: 函数调用
寄存器
intel 访问内存分为:
- 代码
- 对应的寄存其为 代码段寄存器(cs)
- 数据
- 数据段寄存器(ds)
- 栈
- 栈段寄存器(ss)
白话描述:
cs:eip 表示了我们要执行哪里的代码。
ds:xxx 表示了我们要访问哪里的数据。
ss:esp 表示了我们的栈顶地址在哪里。
其它寄存器:
- idtr: 中断描述符表 idt
- gdtr:全局描述符表 gdt
- TSS:任务状态段描述符
- LDT: 局部描述符
- CR0: 机器状态字寄存器
- DF(Direction Flag): 方向控制位
- esp: 栈顶地址
- cs:eip:CPU 下一步准备执行的指令
描述表:
- idt : 中断描述表,存放在idtr中。
- gdt: 全局描述表,存放在gdtr中。
CR0:

31位:PG-分页机制标志位
30-19位: 保留位
0位:PE-保护模式开启标志位
CR3:
CR3含有存放页目录表页面的物理地址,因此CR3也被称为PDBR
专业名词
- MMU:内存管理单元 (有时也叫 PMMU,分页内存管理单元)
- IDT: Interrupt Description Table 中断描述表
- IDTR: Interrupt Description Table Register 中断描述表寄存器
- GDT: Global Description Table 全局描述表
- GDTR: Global Description Table Register 全局描述表寄存器
代码目录
