《汇编语言上机实验五(共8页).docx》由会员分享,可在线阅读,更多相关《汇编语言上机实验五(共8页).docx(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上实验报告:课 程:汇编语言程序设计专业班级:计算机科学与技术学 号:姓 名:李中实验五循环结构程序设计实验一、 实验目的1、 学会单重循环和多重循环程序的基本设计方法2、 学会循环控制指令的使用方法3、 学会数据串操作指令的使用方法4、 学会循环程序的控制方法二、 实验要求1、 仔细阅读教材中循环程序的组成及控制方法部分2、 熟练掌握在DEBUG中调试程序的方法3、 了解DEBUG中T命令与P命令的不同点4、 掌握循环结构程序的调试方法三、 实验内容1、 编写程序,完成在屏幕上显示九九表的功能。2、 编写程序。已知内存中连续存放着10个带符号字节数据,求出该组数据中的
2、最大值和最小的值,结果存放在指定的内存单元中四、 解题思路采用循环的方式编写程序,现将19存入内存中,每次取一个数,依次输出被乘数,乘号X,乘数,等号=,结果。乘数从零递增,小于被乘数时,输出空格,等于被乘数时,输出换行符。直到内存中的数取完了先取第一个数,并将这个数设成最大和最小值。然后依次取数,分别于最大值,和最小值比较。比最大值大,将最大值替换为此数,比最小值小,将最小值替换为此数。循环至所有数都取完。将最大最小值移入内存。五、 编程实现1、DSEG SEGMENTDATA DB 1,2,3,4,5,6,7,8,9DSEG ENDSCSEG SEGMENTASSUME CS:CSEG,D
3、S:DSEGSTART:MOV AX,DSEGMOV DS,AXMOV BL,01HMUL2:XOR CX,CXMOV CL,BLLEA SI,DATAMUL1:MOV DL,BLADD DL,30HMOV AH,02HINT 21HMOV DL,XMOV AH,02HINT 21HMOV DL,SIADD DL,30HMOV AH,02HINT 21HMOV DL,=MOV AH,02HINT 21HMOV AL,BLXOR AH,AHMOV BH,SIMUL BHCMP AL,0AHJAE RELMOV DL,ALADD DL,30HMOV AH,02HINT 21HNEXT:MOV DL
4、,20HMOV AH,02HINT 21HINC SILOOP MUL1MOV DL,0AHMOV AH,02HINT 21HADD BL,01HCMP BL,09HJBE MUL2JMP END0REL:MOV DL,0AHDIV DLMOV BH,AHMOV DL,ALADD DL,30HMOV AH,02HINT 21HMOV DL,BHADD DL,30HMOV AH,02HINT 21HJMP NEXTEND0:MOV AH,4CHINT 21HCSEG ENDS END START编辑:汇编:链接:运行:2、DSEG SEGMENTDATA DB -1,5,10,7,6,-5,1,
5、3,-4,8MAX DB 0MIN DB 0DSEG ENDSCSEG SEGMENT ASSUME CS:CSEG,DS:DSEGSTART: MOV AX,DSEG MOV DS,AX MOV CX,10 LEA SI,DATAGO: MOV DL,SI MOV BH,MAX MOV BL,MIN CMP DL,BH JGE MAXETESTM: CMP DL,BL JLE MINE JMP GOONMAXE: MOV MAX,DL JMP TESTMMINE: MOV MIN,DLGOON: INC SI LOOP GO MOV AH,4CH INT 21HCSEG ENDS END S
6、TART编辑:汇编:链接:运行结果:六、 心得体会1、 程序应该设置断点。因为循环结构程序,通常处理的数据很多,部分指令重复执行,用T命令单步跟踪执行太麻烦,U反汇编不容易观察。设置断点,用G命令执行程序后,在用D命令,就可以观察内存的情况,以检验程序是否正常。2、 循环的时候,有的时候需要保存中间结果,这时可以用压栈的方式保存想要的结果,进行其他程序执行,想用的时候,在从栈中取出就行,这样可以保证中间结果不会丢失和损毁。3、 进行循环时,控制部分的设置很重要。当不满足循环条件,跳出循环时,应根据寄存器的状态和某些条件判断,接下来进行什么操作。因此,在开始的时候,要清空寄存器并置位。专心-专注-专业