我们不生产PLC,我们只做全新原装的搬运工!
供应AB 1756-A13、1786-TPR
- 关键词: 单片机 基础
- 摘要:寄存器的构成: 1. 通用寄存器组 8086/8088CPU在执行指令部件EU中有4个16位通用寄存器,他们是AX(累加寄存器),BX(基址寄存器),CX(计数寄存器),和DX(数据寄存器),可以存放16位数据或地址。也可以分为8个8位寄存器来使用,低8位是AL、BL、CL和DL,高8位是AH、B
寄存器的构成:
1. 通用寄存器组
8086/8088CPU在执行指令部件EU中有4个16位通用寄存器,他们是AX(累加寄存器),BX(基址寄存器),CX(计数寄存器),和DX(数据寄存器),可以存放16位数据或地址。也可以分为8个8位寄存器来使用,低8位是AL、BL、CL和DL,高8位是AH、BH、CH和DH,只能存放8 位数据,不能存放地址。
2. 指针和变址寄存器
8086/8088CPU中,有一组4个16位寄存器,BP(基址指针寄存器),SP(堆栈指针寄存器),SI(源变址寄存器),DI(目的变址寄存器)。这组寄存器存放的内容是某一段内地址的偏移量。主要在堆栈操作和变址操作中使用。
BP和SP寄存器称为指针寄存器,与SS(堆栈段寄存器)联用,为访问现行堆栈提供方便。通常BP寄存器在间接寻址中使用,操作数在堆栈中,由SS段寄存器与BP组合形成操作数地址,即BP中存放现行堆栈中一个数据区“基址”的偏移量。
SP在堆栈段中使用,PUSH 和POP指令是从SP寄存器得到现行堆栈段的段内地址偏移量,所以称SP寄存器为堆栈指针,SP始终指向栈顶
寄存器SI和DI称为变址寄存器,通常与DS一起使用,为访问现行数据段提供内地址偏移量。在串指令中,其源操作数的偏移量存放在SI中,目的操作数的偏移量存放在DI中。
3.段寄存器
8086/8088CPU可以直接寻址1M字节的存储空间,直接寻址需要20位地址码,而所有的内部寄存器都是16位的,只能直接寻址64K字节,因此采用分段技术来解决。将1M字节的存储空间分成若干逻辑段,每段***长64K字节,这些逻辑段在整个存储空间可以浮动。
8086/8088CPU设置了4个16位段寄存器,他们分别是CS(代码段寄存器),DS(数据段寄存器),SS(堆栈段寄存器),ES(附加段寄存器)。由他们给出相应逻辑段的首地址,称为“段基址”。段基址与段内偏移地址组合形成20位物理地址。
代码段存放可以执行的指令代码,数据断和附加段存放操作的数据,堆栈段开辟为程序执行中所用的堆栈区。
4.指令指针寄存器
8086/8088CPU中设置了一个16位指令指针寄存器IP,用来存放将要执行的下一条指令在现行代码段中的偏移地址。程序运行中,它有BIU自动将其修改,使IP始终指向下一条将要执行的指令地址。
5.标志寄存器PSW
16位标志寄存器PSW用来存放运算结果的特征。常用作后续条件转移指令的转移控制条件。
⑴CF(Carry Flag)-进位标志位。本次运算中***高位有进位或借位时CF=1。
⑵PF(Parity Flag)-奇偶校验位。本次运算结果中有偶数个1时,PF=1。
⑶AF(Auxiliary Carry Flag)-辅助进位标志位。本次运算结果,低4位向高4位有进位或借位时,AF=1。
⑷ZF(Zero Flag)-零标志位。本次运算结果为0时,ZF=1
⑸SF(Sign Flag)-符号标志位。本次运算结果的***高位为1时,SF=1,否则SF=0。
⑹OF(Over Flag)-溢出标志位。本次运算过程中产生溢出时,OF=1。堆栈的概念
堆栈以字为单位进行操作,堆栈中的数据项以低字节在偶地址,高字节在奇地址的次序存放,这样保证每访问一次堆栈就能压入/弹出一个字。