功能实现,在屏幕上显示80个!
assume cs:code
code segment
start: mov ax, cs
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
mov ss:[bp+2],bx; int调用会入栈cs,ip,那么当前压入bp,所以在bp+2的位子是ip,
; 前面执行完int 7ch后,ip就是指向了se的位置,我们通过给当前占内的ip+bx的偏移,当我们ret的时候,代码就会回到 s的部分继续执行。
lpret:
pop bp
iret