1 / 13
文档名称:

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

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

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

分享

预览

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

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

下载得到文件列表

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

文档介绍

文档介绍:宏指令及子程序设计实验1、实验目的1、熟悉宏指令、宏定义、宏调用以及宏展开的概念;掌握宏指令的定义与调用的方法。2、掌握子程序的定义、调用以及调用程序与子程序之间参数的传递方法。3、了解宏指令与子程序的异同以及各自的适用场合。2、实验内容1、从键盘输入10个无符号十进制数(小于256),将其转换为二进制数并存放在NUM字节型变量中,找出其中的最大数,并将找出的最大数在屏幕上显示出来。要求:①在屏幕上显示字符串提示信息的功能由宏指令DSTRING实现;②将键盘输入的十进制数转换成二进制数由子程序DTOB实现;③在N个无符号字节型二进制数中找出最大数的功能由子程序FMAX实现;④将一个无符号字节型二进制数转换为十进制数并在屏幕上显示的功能由子程序BTOAD实现。程序运行结果如右图所示。COUNT   EQU 10DATA    SEGMENTNUM  DB10DUP(?)IBUF  DB7,0,6DUP(?)OBUF  DB6DUP(?)                 INFOR1    DB"PleaseInput10numbers:",0AH,0DH,'$'INFOR2    DB"Themaxfoundinthe10numberis$"INFOR3    DB0AH,0DH,'$'DATA  ENDSSTACK  SEGMENTstackDATA2  DW40DUP(?)TOP  EQU  LENGTHDATA2STACK  ENDSCODE  SEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART: MOVAX,DATAMOV  DS,AXMOV  AX,STACKMOV  SS,AXMOV  AX,TOPMOV  SP,AXDSTRINGMACROSTRINGPUSH  DXPUSH  AXMOV  DX,OFFSETSTRINGMOV  AH,09HINT  21HPOP  AXPOP    DXENDMDSTRING  INFOR1MOV  BX,OFFSETNUMMOV  CX,COUNTLOOP1: CALLDTOBDSTRING  INFOR3MOV  [BX],ALINC  BXLOOP  LOOP1MOV  AX,OFFSETNUMPUSH  AXMOV  CX,COUNTPUSH  CXCALL  FMAXDSTRING  INFOR2CALL  BTOADMOV  AH,4CHINT    21HDTOB  EARPUSH  CXMOV  DX,OFFSETIBUFMOV  AH,0AHINT  21HMOV  CL,IBUF+1MOV  CH,0MOV  SI,OFFSETIBUF+2MOV  AX,0AGAIN: MOVDX,10MUL  DXAND  BYTEPTR[SI],0FHADD  AL,[SI]ADC  AH,00HINC  SILOOP  AGAINPOP    CXRETDTOB  ENDPFMAX  EARMOV  AL,NUMMOV  SI,OFFSETNUMMOV  CX,9  LOOP2: INCSICMP  AL,[SI]JAE  LOOP3XCHG  AL,[SI]LOOP3: XJNZ  LOOP2XOR  AH,AHMOV  OBUF,ALRETFMAX  ENDPBTOAD EARMOV  BX,  OFFSETOBUF+5MOV  BYTEPTR[BX],'$'MOV  CX,10LOOP4: MOVDX,0DIV  CXADD  DL,30HDEC  BXMOV  [BX],DLOR    AX,AXJNZ  LOOP4MOV  DX,BXMOV  AH,09HINT  21HRETBTOAD    ENDPCODE    ENDSENDSTART2、实验****题:计算1+2+3+……+;给出必要的提示信息(由宏调用实现);累加功能由子程序调用实现;二进制数(累加和)转换为十进制数并显示子程序调用实现.(1)  实验源代码:STACK    SEGMENTstackDB100DUP(?)STACK    ENDSDATA   SEGMENTINF1  DB"PleaseinputanumberN(0-65535):$"IBUF  DB7,0,6DUP(?)OBUF  DB6DUP(?)INF2  DB0AH,0DH,"$"DATA    ENDSCODE    SEGMENTASSUMECS:CODE,DS:DATASTART:  MOV  AX,DATAMOV  DS,AXDSTRINGMACROSTRINGPUSH  DXPUSH  AXMOV DX,OFFSETSTRINGMOV AH,09HINT 21HP