汇编第一次实验-武汉理工

上传人:飞*** 文档编号:47803946 上传时间:2018-07-05 格式:PDF 页数:11 大小:385.84KB
返回 下载 相关 举报
汇编第一次实验-武汉理工_第1页
第1页 / 共11页
汇编第一次实验-武汉理工_第2页
第2页 / 共11页
汇编第一次实验-武汉理工_第3页
第3页 / 共11页
汇编第一次实验-武汉理工_第4页
第4页 / 共11页
汇编第一次实验-武汉理工_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《汇编第一次实验-武汉理工》由会员分享,可在线阅读,更多相关《汇编第一次实验-武汉理工(11页珍藏版)》请在金锄头文库上搜索。

1、汇编语言实验报告学院 计算机科学与技术学院专业计算机科学与技术专业班级学号姓名实验时间: 2011 年 11月一、 实验名称:熟悉汇编语言程序调试环境及顺序程序设计二、 实验内容及要求:实验目的及要求: 1学习及掌握汇编语言源程序的书写格式和要求,明确程序中各段的功能和 相互之间的关系。 2学会使用 EDIT、MASM、LINK、DEBUG 等软件工具。 3熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。 实验内容:编写习题5.1 和习题 5.5 的程序并调试通过。三、 实验使用的关键技术和方法:1汇编语言源程序的建立本例中给出的程序是要求从内存中存放的10 个无符号字节整数数组中找

2、出最小 数,将其值保存在AL寄存器中。设定源程序的文件名为ABC 。DATA SEGMENT BUF DB 23H,16H,08H,20H,64H,8AH,91H,35H,2BH,7FH CN EQU $-BUF DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV BX,OFFSET BUF MOV CX,CN DEC CX MOV AL,BX INC BX LP: CMP AL,BX JBE NEXT MOV AL,BX NEXT: I

3、NC BX DEC CX JNZ LP MOV AH,4CH INT 21H CODE ENDS END START 键入以下命令: C:EDIT ABC.ASM 此时屏幕的显示状态如图1 所示。图 1 用 EDIT编辑 ABC.ASM 程序窗口程序输入完毕后一定要将源程序文件存入盘中,以便进行汇编及连接, 也可以再 次调出源程序进行修改。2将源程序文件汇编成目标程序文件一般情况下, MASM 汇编程序的主要功能有以下3 点: (1)检查源程序中存在的语法错误,并给出错误信息。 (2)源程序经汇编后没有错误,则产生目标程序文件,扩展名为.OBJ。 (3)若程序中使用了宏指令,则汇编程序将展开宏

4、指令。 源程序建立以后, 在 DOS 状态下,采用宏汇编程序MASM 对源程序文件进行汇编, 其操作过程如图 2 所示。图 2 MASM宏汇编程序工作窗口汇编过程的错误分警告错误(Warning Errors)和严重错误( Severe Errors ) 两种。其中警告错误是指汇编程序认为的一般性错误;严重错误是指汇编程序认 为无法进行正确汇编的错误,并给出错误的个数、错误的性质。这时,就要对错 误进行分析, 找出原因和问题, 然后再调用屏幕编辑程序加以修改,修改以后再 重新汇编,一直到汇编无错误为止。3用连接程序生成可执行程序文件经汇编以后产生的目标程序文件(.OBJ 文件)并不是可执行程序

5、文件,必须经 过连接以后,才能成为可执行文件(即扩展名为.EXE) 。 连接过程如图 3 所示。图 3 LINK连接程序工作窗口上述提示行回答以后, 连接程序开始连接, 如果连接过程中出现错误, 则显示出 错误信息,根据提示的错误原因, 要重新调入编辑程序加以修改, 然后重新汇编, 再经过连接,直到没有错误为止。连接以后,便可以产生可执行程序文件(.EXE 文件) 。4程序的执行当我们建立了正确的可执行文件以后,就可以直接在DOS 状态下执行该程序。 如:C:ABC 本程序当中没有用到DOS 中断调用指令,所以在屏幕上看不到程序执行的结果。四、实验设计方案说明对于习题 5.1 : 流程图如图所

6、示:对于这题,我原来的想的代码是下边所示的代码: 由于考虑到从键盘上多次输入小写字母与输出相应的大写字母,所以为了简 化程序,避免多次书写相同代码,使用了宏定义,input ,output INPUT MACRO K MOV AH,1 INT 21H MOV K,AL ENDM OUTPUT MACRO K MOV DL,K MOV AH,2 INT 21H ENDM 然后是对输入的字符进行检错操作,判断输入的字符的ASCII 是否在AZ 之间,是就进行转化并输出,不是直接跳出循环,操作结束。 CMP M,A JB STOP CMP M,Z JA STOP 最后是在进行一次正确操作结束后跳到编

7、码的开始时,进行多次操作, 如果想结束操作,可输入任何不在az 之间的任意字符,结束实验。 对于习题 5.5 :编写程序,要求能从键盘接受一个个位数N ,然后响铃 N次 (响铃的 ASCII 码为 07) 流程图如图所示:首先是对输入字符的检错操作,判断输入的字符是否在09之间的个位数, 如果是,进行下面的操作,否则直接结束。 CMP AL,0 ; 检查输入的数是否在0-9 之间 JB STOP CMP AL,9 JA STOP CBW MOV CX, AX 然后将正确的数字放入CX中,作为循环的次数,其中循环使用LOOP ,每循 环一次就执行一次响铃操作,直至CX的内容为 0。 BELL:

8、MOV DL,07 ; 循环响铃MOV AH,2 INT 21H LOOP BELL JMP BEGIN STOP: MOV AX, 4C00H INT 21H 习题 5.1 的完整代码: INPUT MACRO K MOV AH, 1 INT 21H MOV K, AL ENDM OUTPUT MACRO K MOV DL, K MOV AH, 2 INT 21H ENDM ASSUME CS: CODE, DS: DATA DATA SEGMENT M DW 0 DATA ENDS CODES SEGMENT BEGIN: MOV AX, DATA MOV DS, AX INPUT M C

9、MP M,A JB STOP CMP M,Z JA STOP SUB M,20H MOV AH,2 MOV DL,0AH INT 21H OUTPUT M MOV AH,2 MOV DL,0AH INT 21H JMP BEGIN STOP: MOV AX,4C00H INT 21H CODE ENDS END 习题 5.5 : ASSUME CS: CODE CODE SEGMENT BEGIN: MOV AH,1 ; 输入数字 INT 21H CMP AL,0 ; 检查输入的数是否在0-9 之间 JB STOP CMP AL,9 JA STOP CBW MOV CX, AX JCXZ ST

10、OP ; 如果 cx 中是的数为 0 则结束BELL: MOV DL,07 ; 循环响铃 MOV AL,2 INT 21H LOOP BELL JMP BEGIN STOP: MOV AX,4C00H INT 21H CODE ENDS END 四、 测试及评估习题 5.1 测试结果如下生成可执行文件后,对实验进行验证:最终结果习题 5.5 测试结果如下执行后,进行试验验证最终结果如下图所示:五、 设计心得这次试验过程中出现的问题很多, 最开始是对错做过程的不熟悉导致编译运行是 老出错,最后是代码上的错误。 所以通过这次试验不仅让我懂得对汇编操作的基 本过程熟悉了, 更多的是对整个编写代码的流程熟悉了。中间总是出现错误时曾 经不想做了, 但是觉得这种代码也并不是很难,应该可以实现, 所以在不断地改 动之后最终让正确的实验结果出现。所以这次试验还让我对做实验增加了耐心, 因而这次收获很多。学号:0120910340625 武汉理工大学汇编语言实验报告题目熟悉汇编语言程序调试环境及顺序程序设计学院计算机科学与技术学院专业计算机科学与技术班级计算机科学与技术sy0901 姓名王悦指导教师杨青2011 年11 月24 日

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号