8086(16位数据线,20位地址线)几个寄存器的搭配,地址之间的转换:
总线接口部件BIU: Bus Interface Unit:负责与存储器、I/O传送数据
执行部件EU: Execution Unit:完成指令的译码与执行工作
8个通用寄存器:
AX:累加器ADD,BX:基址寄存器BASE,
CX:计数寄存器COUNTER,DX:数据寄存器DATA
SP:堆栈指针寄存器,指示堆栈在内存中的相对位置。
BP:基数指针寄存器,存放数据在内存中的基地址,使寻址方式更为灵活。
SI:源操作数变址寄存器,存放源数据的地址。
DI:目的操作数变址寄存器,存放目的数据的地址。
4个段寄存器:
CS代码段,DS数据段,SS堆栈段,ES附加段。
2个控制寄存器:
IP指令指针寄存器: 控制CPU指令的执行顺序(所有指令的执行都是通过CS:IP来完成。)
标志寄存器PSW: 存放CPU当前的状态。16位寄存器, 8086用了其中的9位,标志寄存器这9位的含义在程序的编写和调试中起决定性的作用。
CF:进位标志,运算器在加减法中出现进位或借位时该标志位置1。Carry Flag
PF:奇偶标志,运算结果的低8位中1的个数为偶数时该标志位置1。Parity Flag
AF:半进位标志,加法或减法时,位3向位4进位或借位时该标志位置1。用于BCD(十进制)运算。Auxiliary
ZF:零标志,运算结果为零时该标志位置1。Zero
SF:符号标志位,当运算结果的最高位为1(负数)时该标志位置1。Sign
TF:单步标志,该位置1时,8088/8086进入单步运行方式,即每条指令执行完后都产生中断,供用户检查各个寄存器及内存的当前状况,通常用于调试。Trap Flag
IF:中断标志,该位置1时,8088/8086的CPU可以响应外部可屏蔽中断,否则,将外部可屏蔽中断屏蔽,即使有中断申请信号也不予理会。Interrupt Flag
DF:方向标志,该位置1时,串操作指令为自动减量指令,即从高地址向低地址处理字符串。串操作指令是对内存中连续的数据进行自动成批操作。Direction Flag
OF:溢出标志,在算术运算中,带符号数的运算结果超出8位或16位带符号数所能表达的范围时,该标志位置1。
存储结构:
逻辑地址到物理地址的转换:
段基地址:段内偏移地址 ------------> 物理地址
*扩充:段地址寄存器的内容左移4位,与相应段的偏移地址相加,形成20位的物理地址。其中:代码段的偏移地址是由指令指针寄存器IP给出的。这个寄存器不能由指令直接赋值。当微处理器复位时,CS中的内容为FFFFH,IP的内容为0000H,所以计算机复位后的第一条指令是从FFFFOH处开始运行的。
由中断类型号找到中断向量(中断向量《======》中断处理子程序的地址)