汇编语言实验报告

发布时间 : 星期六 文章汇编语言实验报告更新完毕开始阅读

实验12 编写、应用中断例程

编写0号中断的处理程序,使得在除法溢出发生时,在屏幕中间显示字符串”divide error!”。然后返回到DOS. assume cs:code

code segment start:mov ax,cs mov ds,ax

mov si,offset do0 ;设置ds:si指向源地址 mov ax,0

mov es,ax ;使用中断向量表中不使用的内存单元 mov di,200h ;设置es:di指向目的地址 mov cx,offset do0end-offset do0 ;设置cx为传输长度 cld ;设置传输方向为正

rep movsb ;此处的指令类似于mov es:[di],word ptr ds:[si] ; loop s (事实上并不存在这种指令)

mov ax,0 mov es,ax

mov word ptr es:[0*4],200h

mov word ptr es:[0*4+2],0 ;设置中断向量表(除法溢出为0号中断)

mov ax,1000h mov bl,1

div bl ;此处为实验除法溢出的代码

mov ax,4c00h int 21h

do0: jmp short do0start ;指令占两个字节,故字符串的偏移地址为202h db \

do0start: mov ax,cs mov ds,ax

mov si,202h ;设置ds:si指向字符串

mov ax,0b800h mov es,ax

mov di,12*160+36*2 ;设置es:di指向显存空间的中间位置

mov cx,13 ;设置cx为字符长度

s: mov al,[si] mov es:[di],al inc si add di,2 loop s

mov ax,4c00h int 21h

do0end:nop code ends end start

联系合同范文客服:xxxxx#qq.com(#替换为@)