编写并安装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
;应用举例:在屏幕中间显示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
相关文章推荐
- 汇编,编写并安装int 7ch中断例程,功能为完成loop指令的功能
- 用中断例程完成loop指令的功能【安装中断例程,设置中断向量表】
- ;用7ch中断例程 完成loop指令的功能
- 第十三章:用7ch中断例程完成loop指令的功能
- 编程:用7ch中断例程完成jmp near ptr s指令的功能,用bx向中断例程传送转移位移。
- 编写并安装int 7ch中断例程,功能为显示一个用0结束的字符串,中断例程安装在0:200处
- [Hb-XVI] 编写包含多个功能子程序的中断例程(直接定址表)
- 编写包含多个功能子程序的中断例程
- 编写包含多个功能子程序的中断例程
- 自己编写int 7ch中断实现loop指令在屏幕显示80个!
- 实验十六_编写包含多个功能子程序的中断例程
- 实验十三(二)中断例程对loop功能实现的简单变通
- 王爽《汇编语言》实验17——编写包含多个功能子程序的中断例程
- 实验十六_编写包含多个功能子程序的中断例程
- 汇编语言----实验16--编写包含多个功能子程序的中断例程
- 汇编语言(王爽)-实验十三(二)中断例程对loop功能实现的简单变通
- ***汇编语言 实验16 编写包含多个功能子程序的中断例程
- 王爽 汇编 实验16 编写包含多个功能子程序的中断例程
- ;编写安装中断7ch的中断例程
- 王爽《汇编语言》实验13:编写、应用中断例程 - 模拟loop 解答