您的位置:首页 > 运维架构

编写并安装int7ch中断例程,功能为完成loop指令的功能

2012-03-06 15:37 585 查看
;编写并安装int7ch中断例程,功能为完成loop指令的功能

;应用举例:在屏幕中间显示80个'!'

;bx放置s到se的长度,调用int7ch时,当前的cs与ip入栈

;(cs与标号s处的段地址相同,ip为se处的偏址)

; se处的偏址加上bx即为s处的偏址

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 ;完成循环功能,找到标号s的段地址与偏址

se:nop

;安装中断程序

mov ax,cs ;复制中断程序代码到0:200处

mov ds,ax

mov si,offset do7ch

mov ax,0

mov es,ax

mov di,200h

mov cx,offset do7chend-offset do7ch

cld

rep movsb

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

do7ch:push bp

mov bp,sp ;栈顶指针值赋给bp

dec cx

jcxz lpret

add [bp+2],bx

lpret: pop bp

iret

do7chend:nop

code ends

end start
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: