下列指令对标志寄存器内容产生影响,但不会改变参与其执行过程的其它寄存器内容的是______。 (2)
1、 loop s
2、 cmp cx,0
3、 jcxz s
4、 div cx
分析:
1. loop s 会对CX寄存器进行更改
2. 正确,只更改标志寄存器中的值
3. 会对CX进行更改
4.会对ax、dx等寄存器产生影响
对于Intel8086cpu标志寄存器的说法正确的是_____。 (2)
1、 cpu执行每一条指令都有可能改变标志寄存器的内容。
2、 无符号数运算的进位或借位情况由cf标志位记录,有符号数运算的溢出情况由of标志位记录。
3、 当前指令对标志寄存器的影响为此指令的执行提供了所需的依据,对后续指令没有任何指导作用。
4、 所有的条件转移指令都要参考标志寄存器中的相关标志位。
分析:
1. 一些传送类指令不会对标志寄存器产生影响
2.正确
3.对后续指令有影响滴。。
4.不是的,比如说jmp指令,就不需要考虑标志寄存器
sub ax,ax
mov ax,5
add ax,-3
以上程序执行完后,CF,OF的值是_____ (3)
1、 0,0
2、 0,1
3、 1,0
4、 1,1
分析:
-3的补码为FFFFFFFD
CF考虑的是无符号数的进位,FFFFFFFD + 5 = 1 0000 0002
故产生了进位,CF = 1
OF考虑的是有符号数的溢出,5+ (-3) = 2 没有溢出,所以,OF = 0
所以,3为正确选项
mov ax,8
mov bx,3
cmp ax,bx
上面指令执行前ZF,PF的值是0,0,执行后ZF,PF的值是_____ (1)
1、 0,1
2、 0,0
3、 1,0
4、 1,1
分析:
8-3 = 5
结果不等于0,所以,ZF = 0
5的十六进制为0000 0000 0000 0101,1的个数为2个,所以,PF = 1
所以,选项1为正确选项
1. mov ax,0
2. push ax
3. popf
4. mov ax,0fff0h
5. add ax,0010h
6. pushf
7. pop ax
8. and al,11000101B
9. and ah,00001000B
上面指令执行后ax的值是____ (3)
1、 845H
2、 8C5H
3、 45H
4、 C5H
分析:
为了分析方便,上面的程序增加了编号。
执行1后,ax = 0
执行2后,将ax压栈
执行3后,将标志寄存器中的标志位全部清零
执行4后,ax = FFF0
执行5后,ax = (1)0000
此时,标志寄存器中CF = 1 因为产生了进位
ZF = 1 因为结果为0
SF = 0 因为结果为0,符号位为0
OF = 0 没有产生溢出
PF = 1 0个1,
根据标志寄存器各位含义:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
CF PF AF ZF SF TF IF DF OF
得出现在标志寄存器的值为00000()()() 010()0101
and 00001000 11000101
-----------------------------------------------------------------
= 0000 0000 0100 0101 (45H)