以下debug的结果是多少:
C>DEBUG EXAM.EXT
-U
OB47:0000 B8470B MOV AX, 0B47
0B47:0003 8ED8 MOV DS, AX
0B47:0005 A10500 MOV AX, [0005]
OB47:0008 3B060700 CMP AX, [0007]
0B47:000C 7F03 JG 0011
0B47:000E A10700 MOV AX, [0007]
OB47:0011 A30900 MOV [0009], AX
0B47:0014 CC INT 3
0B47:0015 00800090 ADD [BX+SI+9000], AL
OB47:0019 0000 ADD [BX+SI], AL
0B47:001B C404 LES AX, [SI]
0B47:001D 8A4680 MOV AL, [BP-80]
-R
AX=0000 BX=0000 CX=0000 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
EX=0B37 DS=0B48 SS=0B47 CS=0B47 IP=0005 NV UP EI PL NZ NA PO NC
-G
AX=( ) IP=( ) OF=( ) CF=( )
0B47:0005 A10500 MOV AX, [0005] ;AX=05A1
OB47:0008 3B060700 CMP AX, [0007] ;AX=05A1,DS:[0007]=3B00,执行后OF=0,CF=1
我就是在这不太明白:为什么AX=05A1 ,DS:[0007]=3B00呢?
希望高手给我讲一讲(我会给你追加20分的),谢谢了!
0B47:0005 A10500 MOV AX, [0005]
OB47:0008 3B060700 CMP AX, [0007]
这两条不要看指令 把他当成数据 那么在内存中就是
0B47:0005=A1
0B47:0006=05
0B47:0007=00
0B47:0008=3B
0B47:0009=06
0B47:0010=07
0B47:0011=00
那么很显然DS:[0005]=05A1,DS:[0007]=3B00