1.写出下面每条指令执行后,ZF、PF、SF等标志位的值。

答:
sub al,al ZF=1 PF=1 SF=0
mov al,1 ZF=1 PF=1 SF=0
push ax ZF=1PF=1SF=0
pop bx ZF=1PF=1SF=0
add al,bl ZF=0PF=0SF=0
add al,10 ZF=0PF=1SF=1
mul al ZF=0PF=1SF=0

2.写出下面每条指令执行后,ZF、PF、SF、CF、OF等标志位的值。

CF OF SF ZF PF
sub al,al
mov al,10h
add al,90h
mov al,80h
add al,80h
mov al,0fch
add al,05h
mov al,7dh
add al,0bh
答:
sub al,al
CF OF SF ZF PF
0 0 0 1 1
mov al,10H ; MOV 指令不影响 Flag
CF OF SF ZF PF
0 0 0 1 1

add al,90H ; 作无符号数,A0H无进位,当作有符号数,16+(-112),在-128~127,无溢出
CF OF SF ZF PF
0 0 1 0 1

mov al,80H ; MOV 指令不影响 Flag
CF OF SF ZF PF
0 0 1 0 1

add al,80H ;作无符号数,100H,进位,作有符号数,(-128)+(-128),不在-128~127,溢出
CF OF SF ZF PF
1 1 0 1 1

mov al,0FCH ; MOV 指令不影响 Flag
CF OF SF ZF PF
1 1 0 1 1

add al,05H ; 无符号,有进位,有符号,(-4)+5=1,在-128~127,无溢出
CF OF SF ZF PF
1 0 0 0 0

mov al,7DH ; MOV 指令不影响 Flag
CF OF SF ZF PF
1 0 0 0 0

add al,0BH ; 无符号数,无进位,有符号数 125+12=137,不在-128~127,溢出
CF OF SF ZF PF
0 1 1 0 1

3.请说说标志CF和标志OF的差异。

答: 如果把指令中处理的数据按照无符号数看待,则处理结果达到进位是,置CF为1;
如果把该处理中的数据按照有符号数看待,则处理结果超过有符号数表达范围的,
置OF为1;两个标志同步进行,CPU并不知道该数的类型;

4.8086/8088标志寄存器中定义了哪些标志?这些标志可分为哪两类?如何改变这些标志的状态?

答: 8086/8088标志寄存器中定义了9个标志,如下:
CF: Carry Flag
ZF: Zero Flag
SF: Sign Flag
OF: Overflow Flag
PF: Parity Flag
AF: Auxiliary Carry Flag
DF: Direction Flag
IF: Interrupt-enable Flag
TF: Trap Flag

这些标志可分为两类,分别为:
1、运算结果标志;
2、状态控制标志;

采用指令SAHF可把AH中的指定位送至标志寄存器低8位SF、ZF、AF、PF、CF;
采用CLC可清除CF,置CF到0
采用STC可置CF到1
采用CLD可置DF到0
采用STD可置DF到1
采用CLI可置IF到0
采用STI可置IF到1
另外,在某些指令执行过程中会改变部分标志的状态;

5.请写出如下程序片段中每条算术运算指令执行后标志CF、ZF、SF、OF、PF、AF的状态。

mov al,89h
add al,al
add al,9dh
cmp al,0bch
sub al,al
dec al
inc al
自己动手网上查资料,或者利用debug工具得出结果;
答: INSTRUCTION CF ZF SF OF PF AF
MOV AL,89H 0 0 0 0 0 0
ADD AL,AL 1 0 0 1 1 1
ADD AL,9DH 0 0 1 0 1 0
CMP AL,0BCH 1 0 1 0 1 0
SUB AL,AL 0 1 0 0 1 0
DEC AL 0 0 1 0 1 1
INC AL 0 1 0 0 1 1

6.请写出如下程序片段中每条逻辑运算指令执行后标志ZF、SF、PF的状态:

mov al,45h
and al,0fh
or al,0c3h
xor al,al
答: INSTRUCTION ZF SF PF
MOV AL,45H 0 0 0
AND AL,0FH 0 0 1
OR AL,0C3H 0 1 0
XOR AL,AL 1 0 1

7.请写出如下程序片段中每条移位指令执行后标志CF、ZF、SF、PF的状态

mov al,84h
sar al,1
shr al,1
ror al,1
rcl al,1
shl al,1
rol al,1

答: INSTRUCTION CF ZF SF PF
MOV AL,84H 0 0 0 0
SAR AL,1 0 0 1 0
SHR AL,1 0 0 0 0
ROR AL,1 1 0 0 0 (该命令不影响SF位)
RCL AL,1 1 0 0 0
SHL AL,1 0 0 1 0
ROL AL,1 1 0 1 0

2.04 标志寄存器相关推荐

  1. 标志寄存器及其标志位

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

  2. 一个奇葩的标志寄存器 flag寄存器

    注意: mov,push,pop等传送指令,执行结果对标志寄存器并无影响! ZF标志:结果为0,则ZF为1:不为0,ZF为0:(zero flag) PF标志:如果1的个数为偶数,pf=1:如果为奇数 ...

  3. 标志寄存器的详细解释

    简介:    CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理机,个数和结构都可能不同)具有三种作用.    (1)用来存储相关指令的某些执行结果.    (2)用来为CPU执行相关指令提供行 ...

  4. 汇编语言随笔(3)-条件转移指令和标志寄存器

    标志寄存器 标志寄存器通常具有以下三种作用:       1,用来存储相关指令的某些执行效果       2,用来为CPU执行相关指令提供行为依据       3,用来控制CPU的相关工作方式     ...

  5. 汇编语言--标志寄存器

    标志寄存器      CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理机,个数和结构都可能不同)具有以下3种作用. 用来存储相关指令的某些执行结果: 用来为CPU执行相关指令提供行为依据: 用 ...

  6. 8086汇编复习3 - 标志寄存器 - 使用emu8086

    1 认识标志寄存器 标志寄存器     CPU内部有一种寄存器,具有三种作用:     1)存储相关指令的某些执行结果:     2)用来为CPU执行相关指令提供行为依据:     3) 用来控制CP ...

  7. 汇编中的通用寄存器、标志寄存器、段寄存器

    通用寄存器: 寄存器和变量差不多,目的都是用于保存一些即将操作的数据 EAX(accumulator) 寄存器:扩展累加寄存器(一般在乘/除中会被主动调用),也可以用于其他用途 ECX(Count) ...

  8. 《汇编语言(第三版)》pushf 和 popf 指令,以及标志寄存器在 Debug 中的表示

    pushf 和 popf pushf 的功能是将标志寄存器的值压栈,而 popf 是从栈中探出数据,输入标志寄存器. pushf 和 popf,为直接访问寄存器提供了方法. 格式 pushf popf ...

  9. 《汇编语言(第三版)》标志寄存器

    标志寄存器 8086CPU中的flag寄存器包括: CF.PF.ZF.SF.OF.DF. 传送指令不影响标志寄存器 ZF标志寄存器 zf标志寄存器位于flag中的第6为,表示零标志位.(至于flag是 ...

最新文章

  1. 难以置信的目标检测小妙招:多训练几个epochs,平均一下就能获得更好的模型...
  2. 基于大数据的Uber数据实时监控(Part 4:Spark Streaming、DataFrames和HBase)
  3. VMware虚拟机安装红帽系统无法上网解决办法(转)
  4. 客户挽留:信用卡客户流失管理
  5. 如何更改Visual Studio 2008中类文件引用的默认名称空间?
  6. 三相阻容降压供电DCDC电源
  7. 几行代码创建属于你自己的SQL数据库
  8. AOJ0006 Reverse Sequence【堆栈+字符流】
  9. 雨林木风windows7旗舰版
  10. ubuntu cmakelists 配置海康 SDK
  11. VS使用教程(使用visual studio编写C语言程序),编写c的入门教程
  12. 职称计算机xp上机考试内容,全国职称计算机考试WindowsXP中文操作系统模块最新上机操作试题(1-12套)...
  13. 美化Hexo 个人博客
  14. 响应式 BootStrap 媒体查询 栅格 组件 scss
  15. 大数据发展前景及就业方向【大数据专业讲座】
  16. 左边是地狱右边也是地狱_像我这样的设计师的特别地狱
  17. java 汽车加油问题_贪心算法 汽车加油问题 | 学步园
  18. SpringBoot集成权限认证框架(Sa-Token)
  19. 【项目】健康项目day5总结
  20. MixMarvel行业分享专栏 韩国区块链市场观察:行业巨头布局区块链游戏领域

热门文章

  1. 删除数据后如何及时释放存储空间
  2. activated钩子函数
  3. 解决surface的幽灵触控
  4. 正定子龙大桥正式开工建设
  5. New 900 Sentences
  6. 递归树求递归算法时间复杂度
  7. 计算机组成原理 CPU 结构和功能
  8. HorizontalScrollView和ViewPager联动效果
  9. Service Test1
  10. linux c alarm系统调用入门