一、通用寄存器
1)数据寄存器
AX:累加器,通用,且所有I/O指令作用于此寄存器;
BX:基址寄存器,通用,且计算存储器地址时作基址使用;
CX:计数器,通用,且用于控制循环次数;
DX:数据寄存器,通用,且放32位数的高16位,或放外设端口地址;
(16位寄存器可拆成两个8位相对独立的寄存器使用,程序中可存放操作数也可存放操作结果)
2)指针及变址寄存器
指针寄存器:
SP:堆栈指针寄存器——栈顶的偏移地址;
BP:基址指针寄存器——默认为SS段地址;
变址寄存器:
SI:源变址寄存器,储存源操作数的地址;
DI:目的变址寄存器,储存目的操作数的地址;
(可存放操作数,但是只能够作16位使用)
二、段寄存器
CS(Code Segment):代码段寄存器——对应段存放指令代码;
DS(Code Segment):数据段寄存器——对应段存放数据或变量;
SS(Stack Segment):堆栈段寄存器——对应段存放栈操作的数据;
ES(Extra Segment):附加段寄存器——对应段存放数据或变量;
三、控制寄存器
IP(Instruction Pointer):
指令寄存器——与CS联用,确定下一条指令物理地址;
计算机通过CS:IP寄存器控制指令序列的执行流程;
IP是一个专用寄存器,不可直接访问;
四、标志寄存器
FR(Flag Register):十六位
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
CF PF AF ZF SF TF IF DF OF
————0:是;1:否;
CF(进位标志):记录运算时从最高为产生的进/借位;
PF(奇偶标志):记录运算结果二进制数中‘1’的个数奇偶;
AF(辅助进位标志):记录运算中低四位是否进/借位;
ZF(零标志):记录运算结果是否为0;
SF(符号标志):记录运算结果是否为负;
TF(陷阱标志):TF=1,使处理器进入单步操作方式(类似于断点,用于程序调试);
IF(中断允许标志):是否允许程序响应中断;
DF(方向标志):记录循环中存储器地址是否自减(反之自增);
OF(溢出标志):表明补码运算结果是否溢出;
————————————
五、地址的形成
8086/8088使用20位物理地址,使用段地址+逻辑地址两个数来表达的形式;
段地址(H)>>1+偏移地址(H)=物理地址;