用7ch中断例程完成loop指令功能---怎么理解7ch的中断例程啊,bp为何入栈?
程序框架如下assume cs:code
code segment
start:
mov ax,0b800h ;向8086CPU显存的地址
mov di,160*12 ;显示位置
mov bx,offset s-offset se ;跳转的位移
mov cx,80 ;循环次数
s:
mov byte ptr es:,'!'
add di,2
int 7ch ;进入中断处理程序
se: nop
mov ax,4c00h
int 21h
code ends
end start
7ch中断例程:
lp:
push bp
mov bp,sp
dec cx
jcxz lpret
add ,bx
lpret:
pop bp
iret 我理解没错的应该可以这样
lp:
dec cx
jcxz lpret
add ,bx
lpret:
iret
发生中断会压入一些值:
ip
cs
标志寄存器
次数sp栈顶指向的是ip。
那么add ss:,bx,也可以成立的
iret 恢复
为什么要bp?可能需要保护现场吧
页:
[1]