微机实验--子程序设计.docxVIP

  • 14
  • 0
  • 约6.93千字
  • 约 26页
  • 2018-05-18 发布于福建
  • 举报
微机实验三 分支和循环程序设计实验一、分支程序设计实验1.实验目的1.掌握分支程序的结构。2掌握分支程序的设计、调试方法。2.实验设备微机一台3.内容设计一数据块间的搬移程序设计思想:程序要求把内存中一数据区(称为源数据块)传送到另一存贮区(称为目的数据块)。源数据块和目的数据块在存贮中可能有三种情况。对于两个数据块分离的情况,数据的传送从数据块的首址开始,或者从数据块的末址开始均可,但对于有部分重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭破坏。可以得出以下结论:当源数据块首址〉目的块首址时,从数据块首址开始传送数据。当源数据块首址〈目的块首址时,从数据块末地址开始传送数据。 流程图:结果:在源数据块中存入6个数,分别使SI大于、等于、小于DI均发觉数据正确传送。可见程序正确。实现代码如下:DATA SEGMENTORG3500HSRC_MESSDB 1,2,3,4,5,6ORG3510HNEW_LOCDB 20 DUP(0)DATA ENDS;CODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATASTART:MOVAX,DATAMOV DS,AXMOVES,AXLEASI,SRC_MESSLEADI,NEW_LOCMOVCX,6CLD ;DF置0CMPSI,DI ;源数据块首址〈目的块首址时,从数据块末地址开始传送数据。JLNEXT1 ;如果SI小于DI,则跳转到NEXT1(否则直接执行NEXT2)NEXT2:REPMOVSBNEXT1:ADDSI,CX ; SI=SI+CX-1 从末地址开始传递数据DECSI ;ADDDI,CX ;DI+=DI+CX-1DECDI ;STD ; DF置1JMPNEXT2 ;CODEENDSEND START结果显示:将3500H开始的1,2,3,4,5,6复制到3510H开始的地址。DATA SEGMENTORG3500HSRC_MESSDB 1,2,3,4,5,6DATA ENDS;CODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATASTART:MOVAX,DATAMOV DS,AXMOVES,AXLEASI,SRC_MESSMOVDI,3502HMOVCX,6CLD ;DF置0CMPSI,DI ;源数据块首址〈目的块首址时,从数据块末地址开始传送数据。JLNEXT1 ;如果SI小于DI,则跳转到NEXT1(否则直接执行NEXT2)NEXT2:REPMOVSB MOV AH,4CH INT 21HNEXT1:ADDSI,CX ; SI=SI+CX-1 从末地址开始传递数据DECSI ;ADDDI,CX ;DI+=DI+CX-1DECDI ;STD ; DF置1JMPNEXT2 ;CODEENDSEND START结果显示:将3500H开始的连续的1,2,3,4,5,6复制搬移到3502H开始的地址。此时,搬移过程应当从数组的最后一个数字6开始搬移,一直到最前面的3500H对应的的数字01搬移到3502H地址为止。DATA SEGMENTORG3502HSRC_MESSDB 1,2,3,4,5,6DATA ENDS;CODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATASTART:MOVAX,DATAMOV DS,AXMOVES,AXLEASI,SRC_MESSMOVDI,3500HMOVCX,6CLD ;DF置0CMPSI,DI ;源数据块首址〈目的块首址时,从数据块末地址开始传送数据。JLNEXT1 ;如果SI小于DI,则跳转到NEXT1(否则直接执行NEXT2)NEXT2:REPMOVSB MOV AH,4CH INT 21HNEXT1:ADDSI,CX ; SI=SI+CX-1 从末地址开始传递数据DECSI ;ADDDI,CX ;DI+=DI+CX-1DECDI ;STD ; DF置1JMPNEXT2 ;CODEENDSEND START结果显示:将3502H开始的1,2,3,4,5,6搬移到3500H开始的地址,应该从3502H地址开始传数据到3500H,依次往后搬移。二、循环程序设计实验1.实验目的(1)加深对循环结构的理解。(2)掌握循环结构程序设计的方法。(3)熟练掌握调试循环程序的方法。2.实验设备TDS-MD微机一台3.内容(1)编制

文档评论(0)

1亿VIP精品文档

相关文档