汇编语言——输入输出程序设计实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四输入/输出实验(2学时综合性实验)
1.实验目的
(1) 掌握输入输出程序设计的概念和方法。
(2) 了解PC机外围芯片8259的功能。
(3)学习如何在PC机上编写具有输入输出功能的程序,包括8259芯片的使用方法。
2.实验说明
本实验要求自行编写一个显示器输出处理程序,它可以完成内存中保存的一串字符在屏幕显示,
因此本实验既属于输入输出实验,也属于中断实验。
3.实验内容
编写一个显示器输出处理中断程序(名为NEW09),实现DOS 21H中断的9号功能,在屏幕上输出内存缓冲区BUF中以”$”结束的一串字符串。要求:缓冲区的偏移地址采用DX寄存器进行传递。
4.实验准备
(1) 预习输入输出程序设计的特点和方法。
(2) 仔细阅读参考程序,弄清外围芯片接口初始化的意义和方法。
5.实验步骤
(1) 建立源文件,并通过汇编和连接,产生可执行文件。
(2) 运行程序,观察常规字符键及功能键按下时程序的反应,
DATAS SEGMENT
buf db'li hongbin','$';此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
main proc far
START:
mov al,68h
mov ah,35h
int 21h
push es
push bx
push ds
mov bx,offset buf
mov dx,offset new09
mov ax,seg new09
mov ds,ax
MOV AX,DATAS
MOV DS,AX
pop ds
pop bx
pop es
sti
mov al,68h
mov ah,25h
int 21h
main endp
new09 proc near
push ax
push bx
push ds
push dx
mov ax,datas
mov ds,ax
sti compare:
cmp [bx],'$'
je exit
mov dl,[bx]
mov ah,2
int 21h
inc bx
jmp compare exit:
cli
pop dx
pop ds
pop bx
pop ax
mov ah,4ch
int 21h
iret
new09 endp CODES ENDS
END START