|
主题 : : 关于PF的问题 [已解决] |
回复[ 6次 ]
点击[ 562次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2010-09-19 19:41 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-08-14 15:30 |
|
|
|
|
|
[第1楼]
[ 回复时间:2010-09-20 19:38 ]
[引用]
[回复]
[ top ] | |
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19 |
AL的最低有效字节是AL,这里, AL=00000000B,加1以后,AL=00000001B,可以看出1的个数不是偶数,所以, PF=0.例如:
d:\MASM>debug
-a
1472:0100 mov ax,2000;ax=0010000000000000B
1472:0103 add ax,1 ;ax=0010000000000001B
1472:0106 add ax,2 ;ax=0010000000000011B
1472:0109 ret
1472:010A
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1472 ES=1472 SS=1472 CS=1472 IP=0100 NV UP EI PL NZ NA PO NC
1472:0100 B80020 MOV AX,2000
-t
AX=2000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1472 ES=1472 SS=1472 CS=1472 IP=0103 NV UP EI PL NZ NA PO NC
1472:0103 050100 ADD AX,0001
-t
AX=2001 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1472 ES=1472 SS=1472 CS=1472 IP=0106 NV UP EI PL NZ NA PO NC
1472:0106 050200 ADD AX,0002 ;加1后,PO
-t
AX=2003 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1472 ES=1472 SS=1472 CS=1472 IP=0109 NV UP EI PL NZ NA PE NC
1472:0109 C3 RET ;加2后,PE
-t | | |
|
|
|
|
[第2楼]
[ 回复时间:2010-09-20 20:34 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-08-14 15:30 |
首先谢谢你能来帮我解答!
后来我用如下代码测试
assume cs:code
code segment
mov al,0a0h
mul al
mov ax,4c00h
int 21h
code ends
end
结果发现标志寄存器一个都没变化,mul指令真的会影响标志位吗?我又做了测试,如下
-a
13E2:0100 mov al,a0
13E2:0102 mov bl,0
13E2:0104 mul bl
13E2:0106 ret
13E2:0107
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13E2 ES=13E2 SS=13E2 CS=13E2 IP=0100 NV UP EI PL NZ NA PO NC
13E2:0100 B0A0 MOV AL,A0
-t
AX=00A0 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13E2 ES=13E2 SS=13E2 CS=13E2 IP=0102 NV UP EI PL NZ NA PO NC
13E2:0102 B300 MOV BL,00
-t
AX=00A0 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13E2 ES=13E2 SS=13E2 CS=13E2 IP=0104 NV UP EI PL NZ NA PO NC
13E2:0104 F6E3 MUL BL
-t
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13E2 ES=13E2 SS=13E2 CS=13E2 IP=0106 NV UP EI PL NZ NA PO NC
13E2:0106 C3 RET ;此时计算结果为ax=0,可是标志寄存器一个都没变!
不知道是哪里出的问题! | | |
|
|
|
|
[第3楼]
[ 回复时间:2010-09-20 22:06 ]
[引用]
[回复]
[ top ] | |
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19 |
乘法指令影响的标志位:CF和OF(AF、PF、SF和ZF无定义) | | |
|
|
|
|
[第4楼]
[ 回复时间:2010-09-20 22:08 ]
[引用]
[回复]
[ top ] | |
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19 |
|
|
|
|
|
[第5楼]
[ 回复时间:2010-09-21 12:17 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-08-14 15:30 |
|
|
|
|
|
[第6楼]
[ 回复时间:2010-09-21 12:18 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-08-14 15:30 |
此贴由 贴主 于 [ 2010-09-21 12:18 ] 结贴。 结贴原因:问题已解决 | | |