欢迎来到天天文库
浏览记录
ID:34036224
大小:48.00 KB
页数:8页
时间:2019-03-03
《微机原理实验总论》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《微机原理》实验3一、实验目的:通过本节课实验,使学生掌握DOS中断调用的格式以及DOS常用中断调用;掌握宏指令的定义及调用格式;掌握8086模块程序的定义及调用格式、对段间模块程序调用进行汇编的命令格式;掌握程序正常结束返回DOS的两种方法。二、实验内容:1.DOS中断调用格式2.宏指令的定义及调用3.8086模块程序的定义、调用(段内、段间)、对模块程序的汇编命令格式。4.8086汇编语言程序正常结束返回DOS的两种方法.三、实验操作步骤1.DOS中断调用的三个步骤第一步:置入口参数第二步:中断功能号送AH第三步:执行INT21H2.常用DOS中断调用讲解(1)1号功能调用(没有入口参数
2、)格式:MOVAH,1INT21H功能:接收键盘输入一个字符,其字符的ASCII值保存在AL寄存器中。(出口参数在AL中)(2)2号功能调用格式:MOVDL,字符或字符的ASCII值MOVAH,2INT21H功能:在显示屏幕上显示输出DL中的字符。实验实验1:MOVDL,41HMOVAH,2INT21H指令运行结果:在屏幕上显示字符 A。8(3)5号功能格式:MOVDL,字符或字符的ASCII值MOVAH,2INT21H功能:在打印机上输出DL中的字符。实验实验2:MOVDL,41HMOVAH,5INT21H指令运行结果:在打印机上输出字符 A。(4)9号功能格式:LEADX,字符串变量名M
3、OVAH,9INT21H功能:在屏幕上显示在指定“字符串变量名”存储的一串字符串。(5)10号功能(或0AH号功能)格式:LEADX,字符串变量名MOVAH,10INT21H功能:接收键盘输入的一串字符保存在指定的字符串变量名(变量缓冲区中)。特别说明:假设变量名为A,则A+0存放最大输入个数;A+1处存放实际输入的字符数;A+2处存放实际输入的字符。实验实例3:键盘输入一串字符(不超过20个),显示回车换行后,屏幕重显刚才输入的这串字符。实验程序清单:DATASEGMENTADB20,0,20DUP(‘$’)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATAS
4、TART:MOVAX,DATAMOVDS,AX8LEADX,AMOVAH,10INT21HMOVDL,0DH;显示回车符MOVAH,2INT21HMOVDL,0AH;显示换行符MOVAH,2INT21HLEADX,A+2;重显输入的字符串MOVAH,9INT21HMOVAH,4CHINT21HCODEENDSENDSTART四、宏指令的定义及调用格式1、宏指令的定义格式:宏指令名MACRO[参数表]宏指令体ENDM功能:定义一条宏指令,宏指令一般放在汇编语言源程序的开头部份定义,宏指令看上去与子程序类似,其本质与子程序完全一样,宏调用时,把定义宏指令程序段插入在宏调用处;宏调用只是节约用户程
5、序的书写长度,增加用户程序的可读性,不节约程序在内存的存储空间。子程序调用时(CALL子程序名),保护好现场断点,转向执行子程序,遇到子程序返回指令RET,返回断点处继续执行原来的程序,程序汇编时,节约了用户程序存储空间。2、宏指令调用格式宏指令名[参数表]实验实例4:8利用定义宏,编写一个显示十进制数(不超过65535)的8086宏汇编语言程序。程序清单如下:OUTPMACROX;宏定义开始MOVCX,0MOVAX,XAA1:INCCXMOVDX,0MOVBX,10DIVBXPUSHDXCMPAX,0JNZAA1AA2:popdxORDL,30HMOVAH,2INT21HLOOPAA2EN
6、DM;宏定义结束DATASEGMENT;主程序定义数据段ADW23456DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXOUTPA;调用宏指令OUTPMOVAH,4CHINT21HCODEENDSENDSTART五、子程序(模块程序)的定义和调用81、段内子程序调用实验实例5:主程序显示AAA,运行子程序显示X。即整个程序运行结果显示AAAX。程序清单:DATASEGMENTADB‘AAA$’DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS
7、,AXLEADX,AMOVAH,9INT21HCALLSUB1;调用子程序SUB1MOVAH,4CHINT21HSUB1PROC;段内子程序定义开始MOVDL,‘X’MOVAH,2INT21HRET;子程序返回指令SUB1ENDP;段内子程序定义结束。CODEENDSENDSTART2、段间子程序调用实例实验实例6 :主程序为MAIN.ASM,依次调用三个子程序SUB1.ASM、SUB2.ASM、SUB3.A
此文档下载收益归作者所有