当前位置:文档之家› 汇编语言上机实验十2015李中

汇编语言上机实验十2015李中

实验十输入/输出与中断实验
一、实验目的
1.掌握输入/输出与中断指令的使用方法;
2.掌握中断向量表的结构及使用方法;
3.掌握INT 指令的使用方法;
4.掌握BIOS 中断功能调用的使用方法;
5.掌握DOS 功能调用的使用方法。

二、实验要求
1.了解INT 指令与CALL 指令的不同点;
2.会用DEBUG 观察中断向量表;
3.会用DEBUG 的T 和P 命令执行INT 指令;
4.会用INT 10H、INT 16H 编制程序;
5.会用DOS 功能调用的02H、09H 功能编制程序
三、实验题目
1. 编制程序。

利用IBM PC BIOS 功能调用的INT 16H 功能,编制一个从键盘上接收若干个字符串的程序。

2.编制程序。

利用IBM PC BIOS 功能调用的INT 10H 功能,编制一个在屏幕上指定位置显示若干个字符串的程序。

四、实验思路
1调用INT16号功能实现输入字符,并且用int10号功能实现显示字符,并且将字符保存到data开始的内存单元中,如果不是ctrl+c的话循环输入输出,是的话结束程序.
2用INT10中03功能读出当前光标位置,然后保存当前的光标位置,只有用INT10中的02号功能设置要显示字符的位置,调用INT10的0E号功能循环显示字符,遇到结尾符号0的时候结束输出,然后恢复光标位置,调用INT10的1号功能恢复光标类型,用INT10的2号功能设置光标位置,使光标位置回到起点,结束程序.
PUSH DX;保存当前光标位置
PUSH CX;保存光标类型
MOV DX,1020H;设置光标位置
MOV AH,02H
INT 10H;设置光标位置
五、实验程序
1
DSEG SEGMENT;数据段开始
DATA DB 80 DUP (0);存储数据的单元
DSEG ENDS
;数据段结束
CSEG SEGMENT;代码段开始
ASSUME CS:CSEG,DS:DSEG;段假设
START:
MOV AX,DSEG
MOV DS,AX;段地址初始化
MOV BX,0
A1: MOV AH,0
INT 16H;调用16号功能输入
CMP AL,03H;判断是否为ctrl+c
JE A2;是的话程序结束
MOV AH,0EH
INT 10H;调用10号功能实现显示
MOV DATA[BX],AL;存储到data单元
INC BX;指向下一字符
JMP A1;循环输入
A2: MOV AX,4C00H
INT 21H;程序结束
CSEG ENDS
END START
2
DSEG SEGMENT
DATA DB 'I LOVE YOU.';字符
DB 00H;字符结尾标志
DSEG ENDS
;
CSEG SEGMENT;代码段开始
ASSUME CS:CSEG,DS:DSEG
START:
MOV AX,DSEG
MOV DS,AX;短地址初始化
MOV SI,OFFSET DATA;取字符的偏移地址
MOV AH,03H
INT 10H;读出当前光标位置
PUSH DX;保存当前光标位置
PUSH CX;保存光标类型
MOV DX,1020H;设置光标位置
MOV AH,02H
INT 10H;设置光标位置
A1: MOV AL,[SI];取出第一个字符
CMP AL,0;判断是否为0
JE A2
MOV AH,0EH
INT 10H;显示字符
INC SI;指向下一个字符
JMP A1;循环
A2: POP CX;恢复光标位置
POP DX;恢复光标类型
MOV AH,01H
INT 10H;设置光标类型
MOV AH,02H
INT 10H;设置光标位置
MOV AX,4C00H
INT 21H
CSEG ENDS
END START
六、实验结果
1
2如图,显示字符'ILOVEYOU'位于中间位置处
七、实验总结
1,利用INT实现输入和输出,并且改变光标的位置;
2,会自己写入中断向量表,使程序执行自己设置的中断程序;3,理解INTn的调用过程以及其中堆栈指针的变化情况;4,学会运用BIOS中断功能调用的使用方法;。

相关主题