汇编语言程序设计-综合程序设计

计算机科学与技术学院上机实验报告

课程名称:汇编语言程序设计 姓名:

实验名称:综合程序设计 一、目的及要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握汇编语言程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、环境(软、硬件平台) DOSBox 三、内容及步骤(包括程序流程及说明) 根据下列要求,编写汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 按15行×16列的表格形式显示ASCII码为10H~FFH的所有字符。每16个字符为一行,每行中的相邻两个字符之间用空白符(ASCII码为0)分隔。 1.程序算法流程图。 设置初始输出为ASCII的10h 输出显示为15行 设置循环次数,16表示输出显示为16列 显示输出,推入堆栈 显示空白符 将栈顶元素推出 设置下一个元素 循环输出每行的16个ASCII元素 将下一行的首元素推入堆栈 输出换行 将栈顶元素推出 比较确定是否已经输出15行元素 若还未完成输出,则跳转至e,继续进行下一行元素的输出,否则退出程序 2.源程序清单。 DATA SEGMENT DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AH, 02H MOV DL, 10H MOV BL, 15 L1: 年级: 学号: 教师:

上机日期: 班级: 成绩:

MOV CX, 16 L2: INT 21H PUSH DX MOV AH,02H MOV DL, 0 INT 21H MOV AH, 02H MOV DL, 0 INT 21H POP DX INC DL LOOP L2 PUSH DX MOV AH, 02H MOV DL, 0DH INT 21H MOV AH, 02H MOV DL, 0ah INT 21H POP DX DEC BL CMP BL, 0 JNE L1 JE EXIT EXIT: MOV AH,01H INT 21h MOV AX, 4CH INT 21H CODE ENDS END START 四、运行结果 五、问题及心得 本次实验实质是输出一个ASCII码表,那么就会遇到按次序输出和换行的问题。我在这之中,就是阵列编辑错误。本实验需要输出15行和16列的ASCII表,我总是输出乱序,之后我询问同学,发现要用堆栈来进行输出。另外,我输出的表所有字符混合在一起,很难辨认,所以我之后在每两个字符之间输出一个换行,这样整个ASCII就既正确又整洁。 本次实验实际需要我们掌握PUSH和POP,LOOP的使用方法。对于本次实验,我了解了如何使用堆栈来进行有顺序的输入输出,并且学会了输出整个ASCII表。所以说,实践出真知!

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4