指令指针寄存器 15 0 IP 指令指针寄存器 指令指针寄存器 IP用来存放下一条要执行指令的偏移地址。CPU取指 令时总是以CS的内容为段基地址,以P为段内偏移地 址。当CPU从CS段偏移地址为(P)的内存单元中取出 指令代码的一个字节后,P自动加1,指向指令代码的 下一个字节。 ■ 遇到过程调用、转移及返回等指令时,系统将根据程 序确定新的1P的内容,使其不再加1。 用户程序不能直接访问IP(指令的操作数不能是P) 16/75页
16/75 页 指令指针寄存器 指令指针寄存器 IP用来存放下一条要执行指令的偏移地址。CPU取指 令时总是以CS的内容为段基地址,以IP为段内偏移地 址。当CPU 从CS段偏移地址为(IP)的内存单元中取出 指令代码的一个字节后,IP自动加 1,指向指令代码的 下一个字节。 遇到过程调用、转移及返回等指令时,系统将根据程 序确定新的IP的内容,使其不再加 1 。 用户程序不能直接访问IP(指令的操作数不能是IP)
标志寄存器(程序状态字,PSW) 1514131211109876543210 OF DF F TF SFZF AF PF CF 方向标志 陷井标志 进位标志 中断允许标志 奇偶标志 辅助进位标志 零标志 控制标志位 符号标志 状态标志位 溢出标志 17/75页
17/75 页 标志寄存器(程序状态字, 标志寄存器(程序状态字,PSW )
标志寄存器 16位寄存器 用来存放运算结果的特征 只使用了其中的9位 ■状态标志位:6个 一反映指令执行后运算结果特征 ■控制标志位:3个 控制CPU的状态 18/75页
18/75 页 标志寄存器 16位寄存器 用来存放运算结果的特征 只使用了其中的 9 位 状态标志位: 6 个 ——反映指令执行后运算结果特征 控制标志位: 3 个 ——控制CPU的状态
状态标志(1) CF(进位标志):CF=D7cY或D15cY 执行算术运算指令后,结果的最高位(字节时为D0Y或字 为D15cY)向更高位产生进位,则CF=1;否则CF=0。 该标志主要用于多字节加、减运算。 例: 3FH+0B4H 0BFH+0B4H 00111111 10111111 10110100 10110100 11110011;CF=0 101110011;CF=1 注:对CF操作有三条专用指令:STC→CF=1;CLC→CF=0; CMC→CF=CF 19/75页
19/75页 CF(进位标志): CF=D7CY或D15CY 执行算术运算指令后,结果的最高位(字节时为D7CY或字 为D15CY)向更高位产生进位,则CF=1;否则CF=0。 该标志主要用于多字节加、减运算。 例: 3FH+0B4H 0BFH+0B4H 0011 1111 1011 1111 + 1011 0100 + 1011 0100 1111 0011 ;CF=0 1 0111 0011; CF=1 注:对CF操作有三条专用指令: STCÆCF=1; CLCÆCF=0; CMCÆCF=CF 状态标志(1)
状态标志(2) PF(奇偶校验标志):PF=D⊕..⊕Do 当运算结果的低8位中“1”的个数为偶数,则PF=1;否 则PF=0。 ■AF(辅助进位标志):AF=D3Cy 字节运算中,低4位向高4位有进位或借位时,则 AF=1;否则AF=0。 例:38H+49H 00111000 +01001001 10000001;AF=1;若视为BCD运算,则应调整。 20/75页
20/75页 例: 38H+49H 38H+49H 0011 1000 0011 1000 + 0100 1001 + 0100 1001 1000 0001 ;AF=1 1000 0001 ;AF=1;若视为BCD运算,则应调整。 运算,则应调整。 PF(奇偶校验标志):PF=D7⊕… ⊕D0 当运算结果的低8位中“1”的个数为偶数,则PF=1;否 则PF=0。 AF(辅助进位标志): AF=D3CY 字节运算中,低4位向高4位有进位或借位时,则 AF=1;否则AF=0。 状态标志(2)