书中p245处的7ch中断例程不明白:
其要求在屏幕中间显示80个‘!’程序如下
assume cs:code
code segment
start:mov ax,0b800h
mov es,ax
mov di,160*12
mov bx,offset s-offset se
mov cx,80
s: mov byte ptr es:[di],'!'
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 [bp+2],bx
lpret:pop bp
iret
我的问题是:1、add di,2中di 为什么要加2呀?
2、为什么是add [bp+2],bx而不是sub [bp+2],bx 我觉得应该减才对呀
3、bp与sp的用途是一样吗? bp的初始值是多少呀,为什么要入栈?
学习ing,遇到不少麻烦,还请各位大侠帮忙解决,也祝各位大侠节日快乐!!!! |