《汇编语言》读书笔记:寄存器

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中

你可能感兴趣的:(《汇编语言》读书笔记:寄存器)