为什么(mov sp,2)在单步调试中会跳过
不知道为啥,我上传不了图片..转入正题
0B25:0125 BC0200 MOV SP,0002
0B25:0128 B86622 MOV AX,2266
0B25:012B 50 PUSH AX
0B25:012C 803E0C9801 CMP BYTE PTR ,01
0B25:0131 7503 JNZ 0136
0B25:0133 E823E1 CALL E259
0B25:0136 E85C01 CALL 0295
0B25:0139 AC LODSB
0B25:013A E85801 CALL 0295
-t
AX=0000BX=8833CX=8833DX=0000SP=0000BP=0000SI=0000DI=0000
DS=1000ES=0B25SS=1000CS=0B25IP=0120 NV UP DI NG NZ AC PO NC
0B25:0120 B80010 MOV AX,1000
-t
AX=1000BX=8833CX=8833DX=0000SP=0000BP=0000SI=0000DI=0000
DS=1000ES=0B25SS=1000CS=0B25IP=0123 NV UP DI NG NZ AC PO NC
0B25:0123 8ED0 MOV SS,AX
-t
AX=1000BX=8833CX=8833DX=0000SP=0002BP=0000SI=0000DI=0000
DS=1000ES=0B25SS=1000CS=0B25IP=0128 NV UP DI NG NZ AC PO NC
0B25:0128 B86622 MOV AX,2266
就是我在debug单步调试时发现, 0B25:0125 BC0200 MOV SP,0002,会被跳过,这是怎么回事呢
ss:sp联合指向栈顶,cpu对其设置是连续的。因此在执行完设置ss的指令后,cpu不会响应中断而直接执行下一条语句。debug的t命令是一种中断,执行完MOV SS,AX后cpu不响应单步中断,执行下一条MOV SP,0002,所以不会显示,但实际上还是执行了,并不是跳过。 谢谢,好人半路捡到钱{:5_90:} hxs554f 发表于 2012-6-3 07:27 static/image/common/back.gif
ss:sp联合指向栈顶,cpu对其设置是连续的。因此在执行完设置ss的指令后,cpu不会响应中断而直接执行下一条语 ...
谢谢,好人半路捡到钱{:5_90:}
页:
[1]