汇编语言实验报告模版带封面

上传人:pu****.1 文档编号:498149041 上传时间:2023-09-18 格式:DOC 页数:9 大小:160.50KB
返回 下载 相关 举报
汇编语言实验报告模版带封面_第1页
第1页 / 共9页
汇编语言实验报告模版带封面_第2页
第2页 / 共9页
汇编语言实验报告模版带封面_第3页
第3页 / 共9页
汇编语言实验报告模版带封面_第4页
第4页 / 共9页
汇编语言实验报告模版带封面_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《汇编语言实验报告模版带封面》由会员分享,可在线阅读,更多相关《汇编语言实验报告模版带封面(9页珍藏版)》请在金锄头文库上搜索。

1、课 程 实 验 报 告课程名称: 汇编语言程序设计 实验名称: 实验一 分支循环程序设计 实验时间: 2016-9-14,14:30-18:00 实验地点: 南一楼116室15号实验台 指导教师: 专业班级:信息安全 201501班 学 号: U201514822 姓 名: 王雪安 同组学生: 无 报告日期: 2016年 9 月 14日 计算机科学与技术学院一、原创性声明 本人郑重声明:本报告的内容由本人独立完成,有关观点、方法、数据和文献等的引用已经在文中指出。除文中已经注明引用的内容外,本报告不包含任何其他个人或集体已经公开发表的作品或成果,不存在剽窃、抄袭行为。 特此声明! 学生签字:

2、日 期:二、评语与成绩评定1.指导老师评语2.实验成绩评定实验完成质量得分(70分)(实验步骤清晰详细深入,实验记录真实完整等)报告撰写质量得分(30分)(报告规范、完整、通顺、详实等)总成绩(100分)指导教师签字: 日 期: / 文档可自由编辑打印目录1实验目的与要求12实验内容13实验过程13.1任务113.1.1设计思想及存储单元分配13.1.2流程图23.1.3源程序23.1.4实验步骤33.1.5实验记录43.2任务253.2.1设计思想及存储单元分配53.2.2xxx54体会5参考文献61 实验目的与要求掌握基本的程序设计框架和方法、熟悉常用指令的用法、熟悉DOS功能调用、进一步

3、掌握TD的使用方法。2 实验内容任务1:从键盘上键入0至9中任一自然数x,求其立方值。任务2:XXX3 实验过程3.1 任务13.1.1 设计思想及存储单元分配求一个数的立方值可以用乘法运算实现,也可以造一立方表,运行时查表实现。依据本次实验的要求,此处用查表法。输入数据为0至9中任一自然数(可以考虑判断输入值的范围是否合乎要求),用一字节单元存放其值;输出数据是该数的立方,用一字单元存放其值。1.存储单元分配X:字节变量X中存放键入的自然数x。XXX:字变量XXX中存放x的立方值。 TAB:立方表的首地址。表中共10项,每项占一个字,依次存放0-9的立方值。从表的结构可知,x的立方值在表中的

4、存放地址与x有如下的对应关系: (TAB + 2 * x) = x的立方值 对于每个键入的x,从字单元TAB + 2 * x之中取出的数据便是其立方值。从键盘接受数字使用1号系统功能调用,此时送入AL之中的是x的ASCII码而不是x的真值。所以,要首先将x的ASCII码换成x的真值,然后用TAB + 2 * x计算x的立方值的存放地址,按此地址查到x的立方值。INPUT:字节存储区,用于存放提示信息。2.寄存器分配EBX:存放x的真值,利用带比例因子的变址寻址方式访问立方表。AX、DX:临时寄存器。3.1.2 流程图 图3.1是任务1求一个数的立方值的程序流程图。开始提示用户从键盘输入一个数字

5、用1号系统功能调用从键盘接收一数字x的ASCII码结束x的真值 AL Xx的真值 EBX(TAB + 2 * EBX) XXX图3.1 计算立方值的程序流程图3.1.3 源程序.386STACK SEGMENT USE16 STACK DB 200 DUP(0)STACK ENDSDATA SEGMENT USE16INPUT DB PLEASE INPUT X(0-9):$TAB DW 0,1,8,27,64,125,216,343,512,729X DB ?XXX DW ?DATA ENDSCODE SEGMENT USE16ASSUME CS:CODE,DS:DATA,SS:STACKB

6、EGIN: MOV AX, DATA MOV DS, AX MOV DX, OFFSET INPUT MOV AH, 9 INT 21H ;显示PLEASE INPUT X(0-9): /录入错误:“;”写成了中文 MOV AH, 1 INT 21H ;从键盘接受一数字x的ASCII码 AND AL, 0FH /录入错误: 数字“0”敲成了字母“O” MOV X, AL ;x的真值 AL X MOV EBX,AL ;x的真值 EBX /设计错误,应改成:XOR EBX, EBX MOV BL, AL MOV AX, TABEBX*2 ; (TAB + 2 * EBX) AX MOV XXX,

7、AX ; 保存立方值 MOV AH, 4CH INT 21HCODE ENDS END BEGIN3.1.4 实验步骤1. 使用编辑程序EDIT.EXE录入源程序,存盘文件名为CUBE.ASM。2. 使用MASM5.0或6.0汇编源文件。即MASM CUBE;3. 观察提示信息,若出错,则用编辑程序修改错误,存盘后重新汇编,直至不再报错为止。4. 使用连接程序LINK.EXE将汇编生成的CUBE.OBJ文件连接成执行文件。即LINK CUBE;5. 若连接时报错,则依照错误信息修改源程序。之后重新汇编和连接,直至不再报错并生成CUBE.EXE文件。6. 执行该程序。即在命令行提示符后输入CUB

8、E后回车,观察执行现象。(以上6个步骤是所有编程实验需要经历的,在后续实验报告中可以适当简化)7. 使用TD.EXE观察CUBE的执行情况。即 TD CUBE.EXE回车(1)观察CS、IP、SP、DS、ES、SS的值。(2)单步执行开始2条指令,观察DATA的实际值,以及DS的改变情况。(3)观察SS:0至SS:SP区域的数据值。(4)观察DS:0开始数据区,找到各变量在数据段中的位置和值。(5)观察第三条语句中源操作数的值,是否和INPUT变量的偏移地址相同。(6)执行第3至7条指令,输入数字3。观察AL的值是否为33H。(7)执行到MOV AX, TABEBX*2,观察源操作数的具体值。

9、 (8)执行MOV XXX, AX,观察目的操作数的形式。到数据段中观察XXX的值是否是3的立方值。8. 将程序重新装入TD中(或将CS:IP重置到MOV AH,9的位置),在执行9号功能调用之前,用TD将数据段中INPUT缓冲区的$(24H)改成其他数值(如00H),再执行9号功能调用,观察现象。9. 当调用1号功能时,若输入大写字母A,则送到XXX的值是哪个存储单元的值;若输入的是K,则送到XXX的值又是哪个存储单元的值。(以上3个步骤是针对实验要求和每个人自己在学习中不太理解的内容设计的)3.1.5 实验记录(包括实验条件、输入/输出、错误和修改等信息的记录)1、实验环境条件:P3 1G

10、Hz,256M内存;WINDOWS 2000命令行窗口;EDIT.EXE 2.0;MASM.EXE 6.0; LINK.EXE 5.2; TD.EXE 5.0。2、汇编源程序时,汇编程序报了3个错误。它们是:CUBE.asm(17): error A2044: invalid character in fileCUBE.asm(22): error A2022: instruction operands must be the same sizeCUBE.asm(20): error A2006: undefined symbol : OFH按照提示,对对应行仔细检查,发现了错误原因。见源程序

11、中“/”后的说明。3、连接过程没有发生异常。4、执行之后在新的一行上显示了字符串PLEASE INPUT X(0-9):5、输入3之后在冒号后显示了一个3。6、程序退出到命令行提示符。7、用TD调入CUBE.EXE后(1)(CS)=0B0AH、(IP)=0000H、(SP)=00C8H、(DS)=0AEAH、(ES)=0AEAH、(SS)=0AFAH。(2)单步执行开始2条指令,DATA的值=0B07H,(DS)0B07H。(3)SS:0至SS:SP区域的数据值在程序没有执行时均为0。单步执行一次后靠近栈顶的几个字发生了变化,不知为何?(4)DS:0开始数据区存放了INPUT变量为首址定义的字

12、符串。EA=15H开始存放TAB立方值表。EA=29H存放X(当前值为0);EA=30H存放XXX(当前值为0)。(5)TD中显示的第三条语句为MOV DX,0000,源操作数的值和INPUT变量的偏移地址相同(均为0)。(6)输入数字3。AL的值从24H变成了33H。(7)MOV AX, TABEBX*2在TD显示的形式为MOV AX,2*EBX+00000015说明TAB代表的EA=00000015H,且是按照双字处理的。 (8)MOV XXX, AX在TD显示的形式为MOV 002A,AX。执行后DS:(002A)=001BH(即27)是3的立方值。8. 略(留给同学们观察后记录。)9.

13、 略(留给同学们观察后记录。)3.2 任务23.2.1 设计思想及存储单元分配3.2.2 xxx 4 体会通过上机,不仅提高了编程水平,熟悉了工具的使用,而且加深了对一些知识的理解。首先,更加感受到实验前准备的意义。例如:上机前准备越充分(如先编好源程序,制定好准备做的一些步骤),上机的时候目的越明确,可以解决较多的问题。其次,本次上机的具体收获有:(1)录入程序时要注意一些细节,比如中文分号、字母O等问题,虽然汇编程序指出其所在行有错,但很难发现具体是哪个符号错了,耽误了不少时间。(2)比较清楚地认识了源程序中的寻址方式在TD中转换成了什么形式。(3)了解了数据在段中存放的方式。(4)实际体会了“$”在9号功能调用中的作用。(5)观察到了异常输入对程序结果的影响等。(6)TD在程序细节的观察、动态修改方面有很大的作用。最后,由于操作不够熟练,时间比较紧张等原因,还有些问题需要以后进

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

当前位置:首页 > 建筑/环境 > 施工组织

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