《汇编语言程序设计实验报告二(分支循环程序实验).doc》由会员分享,可在线阅读,更多相关《汇编语言程序设计实验报告二(分支循环程序实验).doc(3页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、汇编语言程序设计实验报告二(分支循环程序实验)一、 实验目的1、 掌握分支程序、循环程序的设计方法。2、 熟悉DEBUG程序的使用方法。3、 掌握汇编语言程序的编辑、汇编、连接以及调试过程。二、 实验内容1、 编写一程序,将内存中某一区域的数据传送到另一个区域中(要求用循结构,不考虑数据块重叠问题)。2、 编写一程序,将内存中某一区域的数据传送到另一区域(要求考虑数据块重叠问题)。三、 实验准备1、 预习数据传送指令,熟悉分支和循环程序设计方法。2、 预习DEBUG调试程序的使用方法。3、 根据实验内容要求,编写好实验源程序。四、 实验步骤1、 用QE或其它编辑软件,在计算机上编辑源程序,使其
2、正确无误。2、 汇编、连接源程序,产生.EXE可执行文件。3、 运行程序。(1) 进入DEBUG。打入DEBUGT MYPROG.EXE。MYPROG为所编程序的文件名。(2) 先用G命令连续剧连续执行程序,程序执行完毕后,观察运行结果。如果执行后是对的,说明程序编写是正确的,如果结果不对,说明程序有错误,则执行下一步。(3) 检查程序。在程序中设置若干断点,以便杳出错误所在。(4) 采用单步命令T或执行程序,观察各寄存器和存储单元内容,以便找到错误之处。五、 实验报告要求1、 列出程序清单,并给出程序流程图。2、 总结实现数据传送的几种方法,指出它们的区别。 开始3、 分析实验中所遇到的一些
3、问题,分析错误原因。 4、 说明本实验中是如何使用DEBUG进行调试的。 CX、SI、DI置初值六、 流程图勤 开始 设置增量方式 CX、SI、DI置初值 保存SI内容 AL SI SI SI+源块长度 DI AL N SIDI Y SI SI+1 恢复SI内容 恢复SI内容 DI DI+1CX CX-1 设置减量方式 N CX=0? SI指向源块末尾 DI指向目的块末尾 Y 结束 DI SI题一流程图 N 传完了吗?书馆 Y 结束 题二流程图 七、 程序清单 题一程序清单:STACK SEGMENT STACK STACK DB 100 DUP(0)STACK ENDSDATA SEGMEN
4、T PARA DATASOUR DB 0、1、2、3、4、5、6、7、8、9DEST DB 10 DUP(?)DB $DATA ENDS SEGMENT PARACODE ASSUME CS:CODEMAIN PROC FARSTART: PUSH DS MOV AX,0PUSH AX MOV AX,DATA MOV DS,AX MOV CX,10 MOV SI,offset SOUR MOV DI, offset DESTAGAIN: MOV AL,SI MOV DI,AL INC SI IN DI LOOP AGAIN MOV DX,offset DEST MOV AH,09H INT 2
5、1HRETMAIN ENDPCODE ENDSEND START题二程序清单:DATA SEGMENT PARA DATASTRG DB ABCDEFGHIJKLMNOPSTG1 EQU STRG+4STG2 EQU STHG+8STRSE EQU 6DATA ENDSSTACK SEGMENT PARA CODE DB 100 DUP(0)STACK ENDSCODE SEGMENT PARA CODEASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKPROC FARSTART: PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX MOV ES,AX MOV CX,STRSE MOV SI,OFFSET STG1 MOV DI,OFFSET STG2 CLD PUSH SI ADD SI,STRSE-1 CMP SI,DI POP SI JL MOVE STD ADD SI,STRSE-1 ADD DI,STRSE-1MOVE: REP MOVSBRETMAIN ENDPCODE ENDS END START
限制150内