实验四 屏幕字符显示程序.docx
《实验四 屏幕字符显示程序.docx》由会员分享,可在线阅读,更多相关《实验四 屏幕字符显示程序.docx(10页珍藏版)》请在冰豆网上搜索。
![实验四 屏幕字符显示程序.docx](https://file1.bdocx.com/fileroot1/2023-4/2/ddd8fa48-2b12-41cb-9790-762c81d445d9/ddd8fa48-2b12-41cb-9790-762c81d445d91.gif)
实验四屏幕字符显示程序
实验报告
课程名称微机原理与接口(技术)
专业电子信息工程
班级
学号
学生姓名
黄淮学院信息工程学院
实验报告四
实验名称
调试程序DEBUG及8086指令使用
实验时间
2016年04月19日
学生学号
学生姓名
同组人员
专业班级
信息1401B
实验类型
演示性
指导老师
实验地点
1号楼614
学时
2
1、实验目的
1、8086/8088指令:
JMP,ROR,XOR,HLT。
2、利用DOS功能调用INT21H的2号和9号功能进行屏幕显示的方法。
3、直接向RAM(VRAM)送ASCII码进行屏幕显示的方法。
4、IBM-PC机的ASCII码表及控制字符。
5、命令(.COM)文件及使用方法。
6、利用^Break退出程序的方法及局限性。
2、实验预备知识
1)dos功能调用:
字符串输入0AH,单字符输出02H,字符串输出AH=9,进程终止AH=4CH。
2)8086指令系统:
数据传送指令:
1,数据传送指令,2,地址传送指令3,标志传送指令,4、位运算指令,5、串操作指令,6、控制转移指令,7、处理器控制指令。
3)汇编语言程序设计:
1、顺序结构,2、分支结构,3、循环结构。
3、实验内容和步骤
一、利用INT2109H号功能调用显示字符串。
1、用A命令在100H处键入下列程序:
MOVAH,9
MOVDX,110
INT21
INT20
2、用A命令在110H处键入下列字符串的ASCII码:
DB'Thisisasample!
$'
3、用N命令和W命令将此程序(包括数据区)存入文件名为AA.COM的磁盘文件中。
(存入前BX:
CX必须置为文件长度值)。
4、用Q命令退出DEBUG。
5、在DOS命令下打AA,运行此程序,即在屏幕上显示'Thisisasample!
'字符串,若不出现,用DEBUG检查程序有无错误。
2、用A命令在1000H处键入下列ASCII码并用D命令检查之:
DB`0123456789ABCDEF'
用D命令检查时注意左边的ASCII码值和右边的字符。
3、用R命令给DX送一个四位的16进制数(例7F8EH)。
4、用T命令逐条运行这程序到LOOP指令处,观察并记录每次运行结果,特别是SP和堆栈内容(用D命令检查)
5、用G命令将此程序运行到结束,并用D命令检查2000H处所转换的结果。
可注意屏幕右边的ASCII字符与DX是否一致。
二、利用INT21H2号功能显示字符:
1、用A命令在100H处键入下列程序:
XORDL,DL
MOVCX,100
LOP:
MOVAH,2
INT21
INCDL
LOOPLOP
INT20
2、用G命令运行程序,即在屏幕上依次缓慢的显示256个ASCII字符。
仔细观察每个字符,和IBM-PCASCII码表对照,看07H-0DH处控制字符显示结果与表上有何不同?
3、按CTRL+BREAK退出此程序,若一次不行可多做几次。
三、自编一个程序,要求显示AX的内容,即能显示AX=xxxx。
调试时AX的内容可用R命令赋值,也可用MOV指令赋值。
4、实验电路、程序清单
一、利用INT2109H号功能调用显示字符串。
程序1:
DATASEGMENT
BUFDB'Thisisasample!
$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDX,AX
MOVDX,OFFSETBUF;LEATDX,STR
MOVAH,9
MOVDX,110
INT21H
MOVAH,4CH;INT20H
INT21H
CODEENDS
ENDSTART
二、利用INT21H2号功能显示字符:
程序2:
DATASEGMENT
BUFDB'Thisisasample!
$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDX,AX
XORDL,DL
MOVCX,100
LOP:
MOVAH,2
INT21H
INCDL
LOOPLOP
INT20
MOVAH,4CH;INT20H
INT21H
CODEENDS
ENDSTART
三、自编一个程序,要求显示AX的内容,即能显示AX=xxxx。
程序3:
DATASEGMENT
BUFDB'AX='
STRDB4DUP(?
),'H','$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
MOVAX,DATA
MOVDS,AX
MOVSI,OFFSETSTR
MOVBX,8EFBH
MOVCH,4
MOVCL,4
LP:
ROLBX,CL
MOVDL,BL
ANDDL,0FH
ADDDL,30
CMPDL,3AH
JCDISP
ADDDL,7
DISP:
MOV[SI],DL
INCSI
DECCH
JNZLP
LEADX,BUF
MOVAH,09H
INT21H
INT20
CODEENDS
5、实验结果
程序一:
Emu8086运行结果:
程序2
Emu8086运行结果:
程序3:
Emu8086运行结果:
6、实验中遇到的问题
1)在调试实验三时,使用02H调用时屏幕上显示的字幕很慢很少。
2)程序的编写还是有欠缺自己下去还要继续努力。
指导教师批阅成绩
指导教师签字:
年月日