在书中P271页检测点15.1中有这么一句话:
“其实在我们的int9中断例程中,模拟int指令调用原int9中断例程的程序是可以精简的,因为在进入中断例程后,IF和TF都已经置0,没有必要再进行设置了。”
由于不能理解,我找到int9的地址后DEBUG一看
从结果中可以看到,用CALL 的方式调用 INT9指向的程序,IF的值根本就没有变化.
所以还是不能明白检测点15.1为什么能精简,更不能明白 "IF和TF已经置0" 是怎么回事
AX=0000 BX=0000 CX=0011 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0B52 ES=0B52 SS=0B62 CS=0B62 IP=0003 NV UP EI PL NZ NA PO NC
0B62:0003 8ED8 MOV DS,AX (注意这里)
-t
AX=0000 BX=0000 CX=0011 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0000 ES=0B52 SS=0B62 CS=0B62 IP=0005 NV UP EI PL NZ NA PO NC
0B62:0005 FF1E2400 CALL FAR [0024] (注意这里) DS:0024=040A
-t
AX=0000 BX=0000 CX=0011 DX=0000 SP=FFFC BP=0000 SI=0000 DI=0000
DS=0000 ES=0B52 SS=0B62 CS=020E IP=040A NV UP EI PL NZ NA PO NC
020E:040A 50 PUSH AX (注意这里) |