1 / 20
文档名称:

宏指令及子程序设计实验.doc

格式:doc   大小:106KB   页数:20页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

宏指令及子程序设计实验.doc

上传人:文库旗舰店 2019/11/11 文件大小:106 KB

下载得到文件列表

宏指令及子程序设计实验.doc

文档介绍

文档介绍:实验五:宏指令及子程序设计实验院系名称:电子工程学院学生姓名:李倩(33)专业名称:电子信息工程班级:电子0808    实验目的1、熟悉宏指令、宏定义、宏调用以及宏展开的概念;掌握宏指令的定义与调用的方法。2、掌握子程序的定义、调用以及调用程序与子程序之间参数的传递方法。3、了解宏指令与子程序的异同以及各自的适用场合。 实验预习要求1、复习宏指令的定义与调用方法。2、复习过子程序的定义与调用方法。3、根据“”中给出的流程图和程序框架编写源程序,以便上机调试。4、从“”中任选一道题目,编写源程序,以便上机调试。 实验内容从键盘输入10个无符号十进制数(小于256),将其转换为二进制数并存放在NUM字节型变量中,找出其中的最大数,并将找出的最大数在屏幕上显示出来。要求:在屏幕上显示字符串提示信息的功能由宏指令DSTRING实现;将键盘输入的十进制数转换成二进制数由子程序DTOB实现;在N个无符号字节型二进制数中找出最大数的功能由子程序FMAX实现;将一个无符号字节型二进制数转换为十进制数并在屏幕上显示的功能由子程序BTOAD实现。程序运行结果如右图所示。1、编程指导(1)显示提示信息的宏指令DSTRING的编写宏指令通常用于在程序中需要反复使用但所需指令条数又不是很多的情形;而对于需要经常使用且需要较多指令才能完成的功能通常通过子程序调用来实现。这是因为,从执行速度上看,由于子程序调用涉及到保护断点的操作,因此,子程序调用比宏调用执行时间相对要稍长一些;但从生成的可执行文件的大小方面考虑,子程序调用生成的文件要小一些。读者在进行汇编语言程序设计时,应综合考虑两者的利弊,以便进行合理选择。下面给出实现提示信息显示的宏指令的定义:DSTRING  MACRO  STRINGPUSH  DXPUSH AXMOV   DX,OFFSETSTRINGMOV   AH,09HINT   21HPOP   AXPOP   DXENDM请读者注意,宏指令应该先定义,后调用。因此,宏定义通常紧跟在代码段中段寄存器赋值指令之后给出。(2)将键盘输入的十进制数转换为二进制数的子程序DTOB的编写子程序的定义方法请参阅教材“”一节。将十进制数转换为二进制数的程序代码请参阅本书“”中“编程指导”部分。(3)在N个无符号字节型二进制数中找出最大数的子程序FMAX的编写请参阅教材“”。(4)将一个无符号字节型二进制数转换为十进制数并在屏幕上显示的子程序BTOAD的编写程序代码请参阅本书“”中“编程指导”部分。2、源程序:COUNTEQU10DATASEGMENTMADB0NUMDB10DUP(?)IBUFDB7,0,6DUP(?)OBUFDB6DUP(?)INFOR1DB"Pleaseinput10numbers:(<256)",10,13,'$'INFOR2DB"THEMAXFOOUNDINTHE10NUMBERSIS"INFOR3DB10,13,'$'DATAENDSSTACKSEGMENTSTACKDATA2DW40DUP(?)TOPEQULENGTHDATA2STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVAX,TOPMOVSP,AXDSTRINGMACRO STI     PUSHDXPUSHAXLEADX,STIMOVAH,9INT21HPOPAXPOPDXENDMDSTRINGINFOR1MOVBX,OFFSETNUMMOVCX,COUNTLOOP1:CALLSTOBDSTRINGINFOR3MOV[BX],ALINCBXLOOPLOOP1MOVAX,OFFSETNUMPUSHAX     MOVCX,COUNTPUSHCXCALLFMAXDSTRINGINFOR2CALLBTOADMOVAH,4CHINT21HSTOBPROCPUSHCXPUSHBXPUSHDXMOVDX,OFFSETIBUFMOVAH,10INT21HMOVCL,IBUF[1]XORCH,CHMOVDL,0MOVBL,1MOV SI,OFFSETIBUF[1]INCSIADDSI,CXLOP5:MOVAL,[SI]SUBAL,30HMULBLADDDL,ALMOVAL,10MULBLMOVBL,ALDECSILOOPLOP5MOVAL,DLPOPDXPOPBXPOPCXRETSTOBENDP;定义在N个无符号字节型二进制数中找出最大数的子程序FMAXFMA