资源描述:
《学生设计性实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、本科学生设计性实验报告项目组长_陈官亮学号_0144366_成员专业_物联网_班级_141___实验项目名称__微机原理上机程序操作___指导教师及职称____朱老师______开课学期至_学年__学期上课时间年月日一、实验设计方案实验名称:实验时间:小组合作:是○否○小组成员:1、实验目的:利用测试与转移指令实现分支。2.利用比较与转移指令实现分支。2、实验内容与要求1.利用测试与转移指令实现分支。程序设计方法:在需要分支的地方用逻辑测试指令TEST进行分支条件的测试判断,再利用各种条件转移指令实现程序分支。2.利用比较与转移指令实现分支。程序设
2、计方法:在需要分支的地方用两数的比较指令CMP,或串比较指令CMPS等进行分支条件的比较判断,再利用转移指令(如JNZ、JNC、JA、JB等)实现程序的分支。3、实验思路(实验内容、数据处理方法及实验步骤等):1.在BLOCK开始的内存单元中有若干以字节为单位的正、负数,自编程序,试统计其中≧0的个数存放于M_DATA单元中,<0的个数存放于P_DATA单元中。2.在BLOCK开始的内存单元中有若干以字节为单位的奇、偶数,自编程序,试统计其中偶数的个数存放于M_DATA单元中,奇数的个数存放于P_DATA单元中。实验一代码:DSEGSEGMENTB
3、LOCKdb1,2,3,-1,3,-4,-5,9,-4,-3,-2,-1,9,8,5,4,4,66,-100,36;此处的取值范围-128-127COUNTEQU$-BLOCKM_DATADW?P_DATADW?DSEGENDSCSEGSEGMENTassumecs:CSEG,ds:DSEGMAINPROCFAR;主程序入口movax,dsegmovds,ax;此处添加主程序代码CALLTJ;统计个数MOVBX,M_DATACALLDISPD;以十进制形式显示CALLCRLF;显示回车换行;按任意键退出movah,1int21hmovax,4c00
4、h;程序结束,返回到操作系统系统int21hMAINENDPTJPROCmovcx,COUNTleasi,BLOCKnext:cmpbyteptr[si],0jgzhshjznext1incP_DATAjmpnext1zhsh:incM_DATAnext1:incsiloopnextRETTJENDPDISPDPROCmovdi,10000dcalldec_divmovdi,1000dcalldec_divmovdi,100dcalldec_divmovdi,10dcalldec_divmovdi,1dcalldec_divRETDISPDENDP
5、dec_divprocnearmovax,bxmovdx,0divdimovbx,dxmovdl,aladddl,30hmovah,2int21hretdec_divendpDISPBPROCMOVCX,16REPEAT1:ROLBX,1MOVDL,BLANDDL,1adddl,30hmovah,2int21hLOOPREPEAT1RETDISPBENDPDISPHPROCmovch,4rotate:movcl,4rolbx,clmoval,blandal,0fhaddal,30hcmpal,3ahjlprintitaddal,7hprintit:
6、movdl,almovah,2int21hdecchjnzrotateRETDISPHENDPcrlfprocnearmovdl,0ahmovah,2int21hmovdl,0dhmovah,2int21hretcrlfendpCSEGENDSENDMAIN进行反汇编成功:进行了统计结果与数据结果一致:实验二代码:DSEGSEGMENTBLOCKdb2,3,5,1,3,4,5,9,4,3,2,1,9,8,0,0,4,23,29,100,54COUNTEQU$-BLOCKM_DATADW?P_DATADW?DSEGENDSCSEGSEGMENTass
7、umecs:CSEG,ds:DSEGMAINPROCFAR;主程序入口movax,dsegmovds,ax;此处添加主程序代码CALLTJ;统计个数MOVBX,M_DATACALLDISPD;以十进制形式显示CALLCRLF;显示回车换行movah,1int21hmovax,4c00h;程序结束,返回到操作系统系统int21hMAINENDPTJPROCmovcx,COUNTleasi,BLOCKnext:TESTbyteptr[si],1jZOUSHincP_DATAjmpnext1OUSH:incM_DATAnext1:incsiloopnex
8、tRETTJENDPDISPDPROCmovdi,10000dcalldec_divmovdi,1000dcalldec_