1. 通用寄存器 ax, bx, cx, dx
CPU包含4个通用寄存器ax, bx, cx, dx,16位CPU寄存器可存储16位2进制的数据,每个寄存器又可以分开成高8位和低8位的两个寄存器来使用ax:ah,al bx:bh, bl cx:ch, cl dx:dh, dl
CX:常用作loop循环计数
2.地址总线
地址总线的宽度决定了CPU的寻址能力(可访问的内存空间大小),8086CPU地址总线宽度20位,寻址能力1Mb
3.段地址
8086CPU因为地址总线宽度大于寄存器的存储宽度,所以一个地址需要放到2个寄存器中,所以就形成了段地址的概念,4位的段地址*16+16位的偏移地址=物理地址
4. 段寄存器
CS:代码段地址寄存器
IP:指令指针寄存器(指令在代码段中的偏移地址)
jmp指令可以改变CS和IP的内容 jmp 段地址:偏移地址
jmp ax 用ax中的值修改IP
jmp bx 用bx中的值修改IP
DS:数据段地址寄存器
数据段的偏移地址用 [偏移值] 表示, DS + [偏移值] 表示物理内存地址
SS:栈段地址寄存器
栈段的偏移地址存放在寄存器SP中,任意时刻SS:SP指向栈顶元素
push, pop指令从SS和SP中得到栈地址
5. bx bp si bi
1. 只有这四个寄存器可以用在“[...]”中进行内存单元的寻址。
2. 在“[...]”中这四个寄存器可以单个出现,或只能以4种组合出现:
.bx 和 si
.bx 和 di
.bp 和 si
.bp 和 di
3. 只要在“[...]”中使用寄存器bp,而指令中没有显示地给出段地址,段地址就默认在SS中