15277266723 发表于 2012-5-28 10:29:44

我被检测点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

15277266723 发表于 2012-5-28 10:39:06

and 之后答案居然正确了~!

xiaolongxia 发表于 2012-5-28 11:57:46

.......我也调试了下,一样啊!!!

wouiwhbn 发表于 2012-8-19 11:28:20

0ffff0h 的有符号数是+16,
0010h 的有符号数是-16
mov ax,0fff0h
add ax,0010h
有符号运算的结果是0,而无符号运算的结果给进位了,所以小甲鱼的答案是正确的,支持甲鱼
这样可以帮到你吗?

pediyzhi 发表于 2012-9-12 08:16:19

本帖最后由 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 吧

肥马时代 发表于 2012-9-12 09:54:21

这题求出的结果不重要 ,而是弄清计算后标志寄存器究竟怎么变,这是这题的用意

dugwei 发表于 2014-2-14 10:23:58

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 10:40:40

本帖最后由 oggplay 于 2014-2-14 11:22 编辑

IA32平台使用补码表示带符号整数

阔怀 发表于 2015-8-22 10:12:11

帮顶
页: [1]
查看完整版本: 我被检测点11.4整崩溃了