x86 汇编语言 - 04 寄存器
前面介绍了计算机从加电一直到主引导扇区加载到 0x7c00 的位置,然后继续执行。
那么这里介绍一下 8086 CPU 的寄存器,8086 有 14 个寄存器。
如果看过之前《CPU设计和实现》的同学呢,应该能够直到寄存器内部实际上是一堆 D 边沿触发器,这个是很关键的,可以对寄存器有个感性的认识。那么下面来说一下 8086 的寄存器。寄存器可以分为四类。分别对应不同的功能。
通用寄存器
| 寄存器 | 描述 |
|---|---|
| AX | 累加结果数据 |
| BX | 数据段数据指针 |
| CX | 字符串和循环计数器 |
| DX | I/O 指针 |
| DI | 目的数据指针 |
| SI | 源数据指针 |
| SP | 栈指针 |
| BP | 栈数据指针 |
上面四个寄存器 AX, BX, CX, DX, 四个寄存器可以拆分成两个 8 位的寄存器来使用:
| 寄存器 | 高八位 | 低八位 |
|---|---|---|
| AX | AH | AL |
| BX | BH | BL |
| CX | CH | CL |
| DX | DH | DL |
段寄存器
| 段寄存器 | 描述 |
|---|---|
| CS | 代码段寄存器 |
| DS | 数据段寄存器 |
| SS | 栈段寄存器 |
| ES | 额外的寄存器 |
指令指针寄存器
- IP
程序状态字
- PSW,Program State Word,或者 FLAG
其中 CS:IP 共同决定了程序下一条将要执行的指令位置。
参考资料
- 王爽 - 《汇编语言》