经典汇编语言教程:2.1.2 程序状态字
3845 点击·0 回帖
![]() | ![]() | |
![]() | 16位cpu内部有一个16位的标志寄存器,它包含9个标志位。这些标志位主要用来反映处理器的状态和运算结果的某些特征。各标志位在标志寄存器内的分布如图2.2所示。 1514131211109876543210 OFDFIFTFSFZFAFPFCF 31…17161514131211109876543210 ……VMRFNTIOPLOFDFIFTFSFZFAFPFCF 图2.2 16位/32位标志寄存器的示意图 上面9个标志位可分为二组:运算结果标志位(有背景色的标志位)和状态控制标志位。前者受算术运算和逻辑运算结果的影响,后者受一些控制指令执行的影响。 更详细的内容请点击:标志位的说明。 有些指令的执行会改变标志位(如:算术运算指令等),不同的指令会影响不同的标志位,有些指令的执行不改变任何标志位(如:MOV指令等),有些指令的执行会受标志位的影响(如:条件转移指令等),也有指令的执行不受其影响。 程序员要想熟练运用这些标志位,就必须掌握每个标志位的含义、每条指令的执行条件和执行结果对标志位的作用。 注意:虽然知道每个标志位在标志寄存器内的具体位置是有好处的,但通常情况下,没有这个必要。在使用第5.2.9节中的“条件转移指令”时,系统会自动相应标志位的值来决定是否需要“转移”的,所以,不必过分强调标志位在标志寄存器内的具体位置。 | |
![]() | ![]() |