;中断向量表地址:7ch
;中断例程地址0:200
assume cs:code,ds:data,ss:stack
data segment
data ends
stack segment
stack ends
code segment
start:
;--------------------------------
;movsb cld ds:si es:di
mov ax,code
mov ds,ax
mov si,offset install
mov ax,0
mov es,ax
mov di,200h
mov cx,offset en - offset install
cld
rep movsb
;----------------------------
mov ax,0
mov ds,ax
mov bx,4*7ch
mov word ptr [bx],200h
mov word ptr [bx+2],0h
;----------------------------
;要写入的程序从install开始
install:
;dh dl cl ds:si
;0b800h
mov ax,0b800h
mov es,ax
mov al,160
mov ah,0
mul dh
mov bx,ax
mov al,2
mul dl
add ax,bx
mov di,ax
;写入到0b800h+ax中 es:di
L:
mov ah,0
cmp ds:[si],ah
je L2
;write data
mov al,ds:[si]
mov es:[di],al
mov es:[di+1],cl
inc di
inc di
inc si
jmp L
L2:
mov ax,4c00h
int 21h
en:nop
code ends
end start
[汇编语言] 模拟int 21h中断处理子程序
最新推荐文章于 2023-07-04 15:44:00 发布