我被检测点11.4整崩溃了
assume cs:codesg;15 14 13 12 11 1098 7 654 3 2 1 0
; OF DF IF TF SF ZF AF PF CF
;0 0 0 0 0 0 00 0 1 0 0 1 1 0 0
;0 0 0 0 1 0 00 1 1 0 0 01 0 1 and
;0 0 0 0 0 0 00 0 1 0 0 0 1 0 0(1) 44h45h??? 小甲鱼的答案为45H我很不解???
;----------------------------------------------------------------------------------------------------------------------------------------
;上面是我推算出来的答案,和小甲鱼的答案就差1 还可以理解
;而下面才是让我崩溃的 我用DEBUG运行居然得出的是下面这个结果????
;0 0 1 1 0 0 00 0 1 0 0 0 1 1 1 3047h?????3047h何解????
codesg segment
cgy:
mov ax,0
push ax ;0000000000000000
popf
mov ax,0fff0h
add ax,10h
pushf;0000100001001100
pop ax
and al,11000101b
and ah,00001000b
mov ah,4ch
int 21h
codesg ends
end cgy
and 之后答案居然正确了~! .......我也调试了下,一样啊!!! 0ffff0h 的有符号数是+16,
0010h 的有符号数是-16
mov ax,0fff0h
add ax,0010h
有符号运算的结果是0,而无符号运算的结果给进位了,所以小甲鱼的答案是正确的,支持甲鱼
这样可以帮到你吗?
本帖最后由 pediyzhi 于 2012-9-12 08:35 编辑
wouiwhbn 发表于 2012-8-19 11:28 static/image/common/back.gif
0ffff0h 的有符号数是+16,
0010h 的有符号数是-16
mov ax,0fff0h
真心不懂0fff0h怎么会是有符号数的+16
更不懂0010h怎么是有符号数的-16
呵呵应该是0ffff0h是-16 0010h 是16 吧
这题求出的结果不重要 ,而是弄清计算后标志寄存器究竟怎么变,这是这题的用意 pediyzhi 发表于 2012-9-12 08:16 static/image/common/back.gif
真心不懂0fff0h怎么会是有符号数的+16
更不懂0010h怎么是有符号数的-16
呵呵应该是0ffff0h是-16 0010h...
我也是不懂,fff0h的无符号数是65520吧,怎么加个符号就成-16了?太难懂了。。。
求大神解惑啊 本帖最后由 oggplay 于 2014-2-14 11:22 编辑
IA32平台使用补码表示带符号整数
帮顶
页:
[1]