《实验二 程序调试.doc》由会员分享,可在线阅读,更多相关《实验二 程序调试.doc(4页珍藏版)》请在金锄头文库上搜索。
1、实验二 程序调试一、实验目的1、熟悉在PC机上建立、汇编、连接、调试和运行8086汇编语言程序的过程。2、熟悉8086指令系统中一些常用指令的功能和使用。3、学习数据传送和算术运算指令的使用方法。二、实验内容详细阅读汇编语言程序的上机过程。导航员提出本次实验要完成的任务目标,给出问题。配合操作员画好程序流程图。试编写将两个多位十进制数相加程序,要求两个加数均以ASCII码形式各自顺序存在以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。操作员准备程序代码。监督员做好实验记录,实验完成后组织同组同学讨论实验结果,分析出现的问题,回答导航员提出的问题。三、实验设备1、
2、微型计算机一台四、程序参考流程图下面分别给出主程序的子程序的参考流程图,同学们可以参考此流程图,根据自己提出的问题画出合理的流程图。下面给出的程序代码中使用了宏和子程序,这是良好的汇编语言程序结构所提供的解决复杂问题的基本形式,应练习掌握。实验一参考程序清单CRLF MACROMOV DL,0DHMOV AH,02HINT 21HMOV DL,0AHMOV AH,02HINT 21HENDMDATA SEGMENTDATA1 DB 33H,39H,31H,37H,34HDATA2 DB 36H,35H,30H,38H,32HDATA ENDSSTACK SEGMENT PARA STACK S
3、TACKSTA DB 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATASTART:MOV AX,DATAMOV DS,AXMOV SI,OFFSET DATA2MOV BX,05CALL DISPLCRLFMOV SI,OFFSET DATA1MOV BX,05CALL DISPLCRLFMOV DI,OFFSET DATA2CALL ADDAMOV SI,OFFSET DATA1MOV BX,05CALL DISPLCRLFMOV AX,4C00HINT 21HDISPL PROC NEARDS1:
4、MOV AH,02HMOVDL,SI+BX-1INT 21HDEC BXJNZ DS1RETDISPL ENDPADDA PROC NEARMOV DX,SIMOV BX,05AD1:SUB BYTE PTRSI+BX-1,30HSUB BYTE PTRDI+BX-1,30HDEC BXJNZ AD1MOV CX,05CLCAD2:MOV AL,SIMOV BL,DIADC AL,BLAAAMOV SI,ALINC SIINC DILOOP AD2MOV SI,DXMOV BX,05AD3:ADD BYTE PTRSI+BX-1,30HDEC BXJNZ AD3RETADDA ENDPCODE ENDSEND START五调试要求1. 经过汇编、连接无误后,运行程序,观察并记录程序运行结果。2. 试着自己准备两套数据,放在程序中,经汇编、连接后得到并记录运行结果。3. 说明程序功能。4. 根据你的理解,此程序能够完成的运算对象最大是多少?5. 此程序中用到了宏、子程序、系统调用,请阅读教材有关内容,比较宏和子程序各自的优缺点。6. 学习流程图的画法。7. 用DEBUG调试,注意观察汇编后宏的应代码,通过查看堆栈理解子程序的执行过程,循环的过程(循环几次?)。8. 以上做好记录,归纳为实验报告。