标志寄存器及其标志位

标志寄存器:
CPU内部的寄存器,(对于不同的处理机,个数和结构都可能不同)具有三种作用:
  • 用来存储相关指令的某些执行结果
  • 用来为CPU执行相关指令提供行为依据
  • 用来控制CPU的相关工作方式

8086CPU的标志寄存器有 16位,其中 存储的信息通常被称为 程序状态字PSW(标志位),简称flag。flag和其他寄存器不一样,其他寄存器是用来存放数据的,都是整个寄存器具有一个含义。

标志位
flag的1,3,5,12,13,14,15位在8086CPU中没有使用,不具有任何含义,而其余位具有特殊的含义。

运算结果标志位:
ZF标志(ZeroFlag):
零位标志位,它记录相关指令执行后的结果是否为0,如果是0,那么ZF=1,如果结果不为0,那么ZF=0。

PF标志(ParityFlag):
奇偶标志位,它记录相关指令执行后,其结果的所有二进制位中1个个数是否为偶数,如果是偶数,PF=1,反之为0。

SF标志(SignFlag):
符号标志位,它记录相关指令执行后,其结果是否为负,如果结果为负,SF=1,如果非负,SF=0。

CF标志(Carry进位,Flag标志):
进位标志位,一般情况,进行无符号运算时,它记录运算结果的最高位向更高位的进位值,或从更高位的借位值,如果运算结果的最高位产生了一个进位或借位,那么其值为1,否则其值为0。

OF标志(Overflow溢出,Flag标志):
溢出标志位,在进行有符号数运算的时候,如果结果超出了机器所能表示的范围称为溢出,OF的值被置为1,否则OF的值为0。
注意:这里所说的溢出,只是对有符号运算而言。

状态控制标志位:
TF标志(TrapFlag):
追踪标志位,当追踪标志被置为1时,CPU进入单步执行方式,即每执行一条指令产生一个单步中断请求,这中方式主要用于程序的调试。

IF标志(Interrupt-enable Flag):
中断允许标志位用来决定CPU是否响应CPU外部的可屏蔽中断发出的中断请求,但不管该标志为何值,CPU都必须响应CPU外部的不可屏蔽中断所发出的中断请求,以及CPU内部产生的中断请求。
  • 当IF=1时,CPU可以相应CPU外部的可屏蔽中断发出的中断请求。
  • 当IF=0时,CPU不响应CPU外部的可屏蔽中断发出的中断请求。
CPU的指令系统中也有专门的指令来改变标志位IF的值。

参考资料:
  • 12
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,关于标志寄存器的符号表示及其作用,标志寄存器是CPU的一个特殊寄存器,通常用于存储CPU执行过程的一些状态信息。这些状态信息包括进位、溢出、零标志、符号标志等等。 标志寄存器通常被称为FLAGS寄存器,它是一个16位的寄存器,其每一位都代表了不同的状态信息。在x86架构,这些状态信息的符号表示如下: - CF:进位标志(Carry Flag) - PF:奇偶标志(Parity Flag) - AF:辅助进位标志(Auxiliary Carry Flag) - ZF:零标志(Zero Flag) - SF:符号标志(Sign Flag) - TF:单步标志(Trap Flag) - IF:断标志(Interrupt Flag) - DF:方向标志(Direction Flag) - OF:溢出标志(Overflow Flag) 这些标志位的作用如下: - 进位标志:记录加法或减法运算的进位或借位情况; - 奇偶标志:记录运算结果1的个数,如果为偶数则为1,否则为0; - 辅助进位标志:记录加法或减法运算低位到高位的进位情况; - 零标志:记录运算结果是否为0; - 符号标志:记录运算结果的符号,如果为正则为0,否则为1; - 单步标志:用于单步调试程序; - 断标志:用于控制CPU是否响应断请求; - 方向标志:用于控制字符串操作的方向; - 溢出标志:记录运算结果是否溢出。 至于存储单元数据存储形式,存储单元是计算机内存的最小单位,通常是一个字节(8位),也可以是多个字节。存储单元存储的数据可以是不同的类型,如整数、浮点数、字符等等。 在计算机数据的存储形式通常有两种:大端模式和小端模式。大端模式是指在存储单元,高位字节存储在低地址,低位字节存储在高地址;小端模式则相反,高位字节存储在高地址,低位字节存储在低地址。 例如,对于一个16位的整数0x1234,它在大端模式下的存储形式为0x12 0x34,而在小端模式下的存储形式为0x34 0x12。对于不同类型的数据,它们的存储形式也是不同的,需要根据具体情况来确定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值