习惯上把cpu和主存储器合称主机。除了主存储器外还有辅助储存器,简称辅存,也叫外存。![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8fd6d74b6e48680315d2de253fe9f574.png#pic_center)
指针寄存器
指针寄存器有SP和BP:一般用来存放16位地址,在形成20位的物理地址时常被用做偏移量使用。
SP:在进行堆栈操作时被隐含使用,被用来指向堆栈顶部单元。
BP:被用来指向堆栈段内某一存储单元,除了用作地址指针外也可以象数据寄存一样。
变址寄存器
有两个16位变址寄存器SI源变址寄存器)和DI(目的变址寄存器) ,一般用来作地址指针。同BP寄存器一样,也可用作通用寄存器。
CPU在访问存储器时必须指明两个内容:
(1)所访问的存储单元属于哪个段,即指明使用的段寄存器。
(2)该存储单元与段起始地址(段基址)的相距多少,即偏移量。
指令指针IP
CPU在从存储器取指令时,以段寄存器CS作为代码段的基址指针,以IP的内容作为偏移量,共同形成一条指令的存放地址。
当CPU从内存中取出一条指令后,IP的内容自动修改为指向下一条指令。
TIPS
==IP的内容不能被直接被访问,即无法用指令去读IP的值,也不能用指令给它赋值。但是可以通过某些指令的执行而自动修改IP的值。
标志寄存器
标志位分为状态标志和控制标志
状态标志位:CF (Carry Flog), PF (Parity Flog), AF(Assistant Flog) ,ZF(Zero Flag) , SF(Symbol Flag) , OF(Overflow Flag)
控制标志位:TF(Trace Flog) , DF(Direction Flog) ,== IF==(interregnum Flog)
CF
在进行算术运算时,若最高位产生借位或进位时,CF被自动置“1”。(对字是15位,对字节是7位)
在移位类指令中,CF也被用来存放从最高位左移出来或最低位右移出来的数值。
PF
当指令操作结果的低8位中含有1的个数为偶数时,则PF被置“1”(只反映操作结果的低8位)。
AF
在进行算数运算时,若低字节的低4位向高4位产生进位或借位,==即第3位产生进位或借位时,AF置“1”(AF只反映运算结果的低8位)。
ZF
若运算结果各位全为0,ZF被置“1”。
SF
将运算结果视为带符号数,当运算结果为负数时SF被置1,(即SF位与运算结果的最高位7或15 相同)
OF
当运算结果超过机器用补码所能表示数的范围时,OF置“1”。
字节数据,范围: -128~+127
字数据,范围:-32768~+32767
TF
单步标志位供调试程序使用。
当TF位被设置为1时,每执行一条指令后,CPU暂停运行,即产生单步中断。
IF
被设置为1时,CPU可以响应可屏蔽中断,否则不行。
DF
DF用来规定串操作指令的增减方向。DF=0时,串操作指令可以使变址寄存器(SI和DI)内容递增。为“1”使递减。