8086 汇编语言中断程序设计
汇编语言程序设计实验报告
学院:计算机科学与技术专业:计算机科学与技术班级:计科131 姓名学号实验组实验时间指导教师肖敏成绩
实验项目名称实验六:8086 汇编语言中断程序设计
实
验
目
的
熟悉中断程序的设计方法
实
验
原
理
对汇编源程序进行汇编、链接,在Debug环境下完成调试和运行。
实
验
内
容
1、熟悉8086 中断的调用方法。
2、掌握8086 中断的设计方法。
实
验
环
境
1. 硬件:微型计算机1台
2. 软件:MASM软件
实
验
实验一:1.请使用DOS 中断设计编程实现向文件ls.txt 中写入100 个连续的字符A:源程序如下:
DATA SEGMENT
BUF DB 100 DUP ('a')
步
骤
FNAME DB "LS.TXT",0
FNUM DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AH,3CH
LEA DX,FNAME
MOV CX,0 ;语句1
INT 21H
JC EXIT
MOV FNUM,AX
MOV BX,AX ;语句2
MOV CX,100
MOV AH,40H
LEA DX ,BUF
INT 21H
MOV BX,FNUM
MOV AH,3EH
INT 21H
EXIT:
MOV AH,4CH
INT 21H
CODE ENDS
END START
使用相应的文本编辑器建立文件LAB7.asm,内容如上所示。
2.汇编并运行此程序后,在当前目录建立的文件名是什么?其内容是什么?
1>汇编:
C:\masm> masm lab7;
2>连接:
C:\masm> link lab7;
3>运行:
C:\masm> lab7
3.若将语句1 改为mov cx,1,则运行情况与前面会有什么区别?
4.若将语句1 改为mov cx,2,则运行结果同上会有什么不同?并简要说明此语句的作用.
5.若将语句2 改为mov bx,1,则运行结果会有什么不同?简要说明则语句的作用.
实验二:编写0 号中断的处理程序,使得在除法溢出发生时,在屏幕中间显示字符串“divide error!”,然后返回到DOS。源程序下:
assume cs:code
code segment
start:
mov ax,cs
mov ds,ax
mov si,offset do
mov ax,0
mov es,ax
mov di,200h
mov cx,offset doend-offset do ;安装中断例程
cld
rep movsb
mov word ptr es:[0],200h
mov word ptr es:[2],0 ;设置中断向量表
mov dx,0ffffh
mov bx,1 ;测试一下
div bx
mov ax,4c00h
int 21h
do:jmp short dostart
db 'divide error!'
dostart:
mov ax,0
mov ds,ax
mov si,202h
mov ax,0b800h
mov es,ax
mov di,160*12+60
mov cx,13
s:
mov al,ds:[si]
mov ah,15
mov es:[di],ax
inc si
inc di
inc di
loop s
mov ax,4c00h
int 21h
doend:nop
code ends
end start
实
验
结
果
实验一:
3.若将语句1 改为mov cx,1,文件为只读。
4.若将语句1 改为mov cx,2,文件为隐藏。
5.若将语句2 改为mov bx,1,在屏幕上显示写入的字符。
实验二:
实
验
总
结
这次实验没有花费很多时间,因为代码都是现成的,就只按照要求修改代码并运行,比较了其之间的不同。实验二修改了在屏幕上显示的字符的颜色和位置,但是背景色还是没能修改成功。
指
导
教
师
意
见签名:年月日