资源描述:
《微机原理程序设计练习 实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、程序设计练习实验报告一、实验目的1. 熟练掌握汇编语言程序设计的方法及上机步骤。2. 掌握算术运算中,十进制数调整指令的应用。3. 掌握子程序的设计方法。4. 掌握DOS功能的调用方法。二、实验仪器586微机1台三、实验内容有一个首地址为A的N字数组,请编程序使该数组中的数按从大到小的次序排列。编程要求及提示:[1]参加排序的数据及个数由学生自己定义。[2]要将排序前的数组和排序后的数组在屏幕上显示出来。[3]实验步骤同内容一。四、实验源程序N=20STACKSEGMENTSTACK'STACK'DW100HDUP(?)TOPLABELWORDS
2、TACKENDSDATASEGMENTDATABUFDWNDBNDUP(?)ORIGINALDB13,10,13,10,':$'ORDEREDDB13,10,13,10,':$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVAX,STACKMOVSS,AXLEASP,TOP;随机数据MOVCX,DATABUFLEASI,DATABUF+2MOVBL,18MOVAL,13L:MOV[SI],ALINCSIADDA
3、L,BLLOOPLLEADX,ORIGINALMOVAH,9INT21HCALLDISPAL;下面给数据排序程序MOVCX,DATABUFDECCXLEASI,DATABUF+2ADDSI,CX;SI指向数据区末地址L1:PUSHCXPUSHSIL2:MOVAL,[SI]CMPAL,[SI-1]JBENOXCHGXCHGAL,[SI-1]MOV[SI],ALNOXCHG:DECSILOOPL2POPSIPOPCXLOOPL1LEADX,ORDEREDMOVAH,9INT21HCALLDISPALEXITPROC:MOVAH,4CH;结束程序MOV
4、AH,1INT21HDISPALPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXPUSHDILEADI,DATABUF+2MOVCX,20DISPAL2:MOVAL,[DI]SHRAL,1SHRAL,1SHRAL,1SHRAL,1CALLCHANG;----------------------------------MOVAH,2MOVDL,ALINT21HMOVAL,[DI]ANDAL,0FHCALLCHANG;-------------------------------------MOVAH,2MOVDL,ALINT21HM
5、OVAH,2MOVDL,20HINT21H;为了让结果看得清楚,让显示的数用空格空开INCDILOOPDISPAL2POPDIPOPDXPOPCXPOPBXPOPAXRETDISPALENDPCHANGPROCNEARCMPAL,10JNGECHANG1ADDAL,7CHANG1:ADDAL,30HRETCHANGENDPCODEENDSENDSTART实验结果五、问题讨论1.在以十进制数形式参加运算的程序设计中,应注意那些问题。2.总结循环程序设计的步骤及方法。答:循环使用冒泡法,从后往前,每两个数据比较,较大的上升,分内外两层循环,内循环将剩
6、余数据中最大的向上移位,外循环控制下一次的最大值向上移位,外循环遍历每个数据后结束。