年少青衫薄 发表于 2013-8-21 15:42:22

求寄存器ax中的值,请写出详细解答步骤

求(ax)=?

程序如下:
mov ax,0
push ax
popf
mov ax,0fff0h
add ax,0010h
pushf
pop ax
and al,11000101b
and ah,00001000b


vitamin 发表于 2013-8-29 10:14:21

mov ax,0
push ax
popf
mov ax,0
push ax
popf                                              FL清0
mov ax,0fff0h
add ax,0010h    有溢出    ax=0000    FL=0000 1000 0101 0101
pushf
pop ax                        ax=0000 1000 0101 0101
and al,11000101b         al=0100 0101
and ah,00001000b          ah=0000 1000

ax=0145h

求正确答案。

福禄娃娃 发表于 2013-8-29 14:22:42

ax = 0045Hmov ax,0                         AX=0000H
push ax                           AX入栈
popf                              从栈中弹出数据送入标志寄存器中,FLAG=0H
mov ax,0fff0h                  AX=fff0H
add ax,0010h                  溢出,AX=0000H
pushf                               标志寄存器的值入栈 0000 0000 0100 0101
pop ax                           AX=0000 0000 0100 0101
and al,11000101b         AL=0100 0101
and ah,00001000b          AH= 0000 0000标志位情况为
NV UP DI PL ZR NA PE NC
AX=0000 0000 0100 0101B= 45H

vitamin 发表于 2013-9-15 15:16:16

福禄娃娃 发表于 2013-8-29 14:22 static/image/common/back.gif
ax = 0045H标志位情况为
NV UP DI PL ZR NA PE NC
AX=0000 0000 0100 0101B= 45H

有点疑惑,关于溢出标志与进位标志。是不是运算溢出了,进位标准就为0了?

tsembrace 发表于 2013-9-15 18:01:19

vitamin 发表于 2013-9-15 15:16 static/image/common/back.gif
有点疑惑,关于溢出标志与进位标志。是不是运算溢出了,进位标准就为0了?

进位和溢出没关系的
进位标识符就看有没有进位
溢出是看对于有符号数,结果是否准确,不准确则溢出了。

vitamin 发表于 2013-9-16 16:50:02

tsembrace 发表于 2013-9-15 18:01 static/image/common/back.gif
进位和溢出没关系的
进位标识符就看有没有进位
溢出是看对于有符号数,结果是否准确,不准确则溢出了。

哦,懂了,是我算错数了,fff0 作为有符号数的话,真实值是 -0010H ,多谢。

baby520 发表于 2013-9-19 13:19:29

进来看看。。。。

baby520 发表于 2013-9-22 20:32:29

没看懂。。。。。
页: [1]
查看完整版本: 求寄存器ax中的值,请写出详细解答步骤