资源描述:
《实验2---求最大值和最小值.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验2求最大值和最小值一、实验目的1、学习子程序的定义和调用方法。2、掌握子程序设计、调试。二、实验内容对内存中给定的几个无符号字节数,求其最大值和最小值并在数码管上显示。三、实验程序框图 四、实验步骤 联机模式: (1)在内存4000H~4007H中写入任意八个字节的数,按下MON键,返回P状态。 (2)在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开598K8ASM文件夹,点击S7.ASM文件,单击“确定”即可装入源文件,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“
2、调试”中“连续运行”或工具图标运行,即开始运行程序。 (3)数码管显示为:“XX——XX”,最左两位为最大值,最右两位为最小值。脱机模式:1、在P.态下,按SCAL键,然后在内存4000H~4007H中写入任意八个字节的数,按下MON键,返回P状态。2、在P.态下,输入2E70,按EXEC键。3、数码管显示为:“XX——XX”,最左两位为最大值,最右两位为最小值。五、实验程序清单CODESEGMENT;S7.ASM,LOOKFORMAX&MINASSUMECS:CODEORG2E70H;INPUTDATA4000H--4007HSTART:JMPSTART0PAEQU0FF20H;
3、字位口PBEQU0FF21H;字形口PCEQU0FF22H;键入口BUFDB?,?,?,?,?,?data1:db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1hdb86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FHSTART0:MOVSI,4000HMOVCX,0008HCALLMAXMINCALLBUF1CON1:CALLDISPJMPCON1MAXMIN:JCXZEXITPUSHSIPUSHCXPUSHBXMOVBH,[SI]MOVBL,BHCON2:LO
4、DSBCMPAL,BHJNAX1MOVBH,ALJMPX2X1:CMPAL,BLJNBX2MOVBL,ALX2:LOOPCON2MOVAX,BXPOPBXPOPCXPOPSIEXIT:RETDISP:MOVAL,0FFH;00HMOVDX,PAOUTDX,ALMOVCL,0DFH;显示子程序,5msMOVBX,OFFSETBUFDIS1:MOVAL,[BX]MOVAH,00HPUSHBXMOVBX,OFFSETDATA1ADDBX,AXMOVAL,[BX]POPBXMOVDX,PBOUTDX,ALMOVAL,CLMOVDX,PAOUTDX,ALPUSHCXDIS2:MOVCX,00
5、A0HLOOP$POPCXCMPCL,0FEH;01HJZLX1MOVAL,0FFH;00HMOVDX,PAOUTDX,ALINCBXRORCL,1;SHRCL,1JMPDIS1LX1:MOVAL,0FFHMOVDX,PBOUTDX,ALRETBUF1:MOVBH,AHCALLZHMOVBUF+5,ALMOVBUF+4,AHMOVAL,BHCALLZHMOVBUF,AHMOVBUF+1,ALMOVBUF+2,17HMOVBUF+3,17HRET;--------------------------------------------------------ZH:MOVBL,ALMO
6、VCL,4ROLAL,CLANDAL,0FHMOVAH,ALMOVAL,BLANDAL,0FHRET;-------------------------------------------------------CODEENDSENDSTART六、思考题1将数码管显示改为“左边显示最小值,右边显示最大值”,试编程实现。CODESEGMENT;S7.ASM,LOOKFORMAX&MINASSUMECS:CODEORG2E70H;INPUTDATA4000H--4007HSTART:JMPSTART0PAEQU0FF20H;字位口PBEQU0FF21H;字形口PCEQU0FF22H;键
7、入口BUFDB?,?,?,?,?,?data1:dbW0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1hdb86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FHSTART0:MOVSI,4000HMOVCX,0008HCALLMAXMINCALLBUF1CON1:CALLDISPJMPCON1MAXMIN:JCXZEXITPUSHSIPUSHCXPUS