实验五 I/O程序设计
一、实验目的
本实验针对键盘和显示器的编程练习,主要利用BIOS和DOS中断指令,使学生初步掌握I/O程序设计的方法,学会简单的键盘和显示器的编程思路和编程方法。
二、实验要求
1.掌握常用的BIOS和DOS中断指令。
2.学会简单的针对键盘和显示器的编程方法。
三、实验内容(任选1~2题)
1.题目一:
从键盘接收10个十进制数(小于65535),然后以十六进制在屏幕上显示出来。
1.1.编程提示
程序1:从键盘接收10个十进制数(小于65535),然后以十六进制在屏幕上显示出来。(参考例题:【例6-7】)。
1)该程序可以定义3个子程序:
子程序DECIBIN功能:从键盘输入的一个10进制数转换成2进制数放在BX中。
子程序CRLF功能:显示回车换行。
子程序BINIHEX功能:2进制转换成16进制。
2)用 INT 21H的01号功能通过键盘读入一位十进制数(小于65535),最多5位。
3)将十进制数转换成十六进制数,是将字单元中16位二进制数变成4位十六进制数(可以通过子程序来完成。)
4)屏幕上显示利用INT 21H的02号功能在屏幕上显示一个数(可以通过子程序来完成)。
1.2. 思考题:
1)在子程序DECIBIN中将10进制数的ASCII变成2进制数:采用的是什么算法?
2)在子程序BINIHEX中16进制0~F,其ASCII码数字0~9、字符A~F是不连续的,它们是如何转换的?
3)在本程序中用到哪些I/O指令?还可以用哪些其他I/O指令来完成?
2.题目二 :
从键盘读入字符串,将其中的大写字母变成小写,然后在屏幕上显示出来。
2.1编程提示 (参考程序:例8-6)
1)定义一个装字符串的缓冲区,用 INT 21H的0A号功能通过键盘读入字符串送缓冲区。
2)将缓冲区的大写字母变成小写,并保存在缓冲区中。
3)用 INT 21H的09号功能将缓冲区的小写字符串显示在屏幕上。
2.2思考题
1)用 INT 21H的0A号功能时缓冲区的定义有哪些要求?
2)程序中大写字母是如何变成小写字母的?
3.题目三
利用BIOS显示功能调用INT 10H编程实现:在屏幕中央建立一个20行×30列反相显示的小窗口,在窗口的最上面一行显示一个字符串“HELLO!”。
3.1编程提示:
(参考程序:例8-7)
1)在屏幕中央建立一个20行×30列反相显示的小窗口,调用INT 10H的6H号功能。
2)在窗口的最上面一行显示一个字符串“HELLO!” 调用INT 10H的13H号功能
3.2思考题
1)利用INT 10H的6H号功能完成什么操作?是如何实现的?
2)利用INT 10H的13H号功能完成什么操作?是如何实现的?
3)如果用DOS的屏幕显示用哪些功能号来完成?
那啥,现在没财富了。等有了再补