书里说单步中断的执行步骤:
(1)取得中断类型码1;
(2)标志寄存器入栈,TF、IF设置为0;
(3) CS、IP入栈;
(4)(IP)=(1*4),(CS)=(1*4+2)。
下面我用这段代码,用debug调试
assume cs:code
data segment;无视这个段
db 2,3,4,5,6,8,9
data ends
code segment
start:
mov ax,020h;设置栈
mov ss,ax
mov sp,10h
mov ax,02h;四则运算
mov dx,99h
sub ax,dx
mul ax
add dx,dx
mov ax,4c00h
int 21h
code ends
end start
如图:我知道20:0a和20:0c分别是保存ip和cs,栈里其他是什么呢?psw保存在哪?都不像是。感谢大神指点。
第1个回答 2015-08-29
DEBUG,也要使用你的堆栈。