安裝程序:
assume cs:code
code segment
start:
mov ax,cs
mov ds,ax
mov si,offset L
mov ax,0
mov es,ax
mov di,200h
mov cx,offset Lend - offset L;計算L程序的大小
cld
rep movsb
;以下操作修改中斷向量表7ch跳轉地址爲0:200
mov ax,0
mov es,ax
mov word ptr es:[7ch*4],200h
mov word ptr es:[7ch*4+2],0
mov ax,4c00h
int 21h
L:
lp:
push bp
mov bp,sp;將棧頂地址送到bp
dec cx
jcxz lpret
sub [bp+2],bx;在棧中,將bp下面的ip修改到執行程序的開頭
lpret:
pop bp;恢復bp
iret;相當於pop IP
;pop CS
;popf
Lend:
nop
code ends
end start
assume cs:code
code segment
start:
;將顯存區域地址傳送到es
mov ax,0b800h
mov es,ax
mov di,160*12;將屏幕中間的位置地址付給di
mov bx,offset se - offset s;計算s程序段的大小
mov cx,80;要打印80個感嘆號
s:
mov byte ptr es:[di],'!'
add di,2;跳到下一個數據區
int 7ch;引發7ch中斷
;操作有:pushf
;push CS
;push IP
se:
nop
mov ax,4c00h
int 21h
code ends
end start