汇编实验报告_第1页
汇编实验报告_第2页
汇编实验报告_第3页
汇编实验报告_第4页
汇编实验报告_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、福建农林大学金山学院实验报告系: 信息与机电工程 专业: 电子信息工程 年级: 2013 班级: 3班 姓名: 单瑞 学号: 136710101 实验课程: 汇编语言 实验室号:金综B705实验时间:2015/6/12指导教师签字:刘永芬成绩: 实验三 分支循环程序设计1实验目的和要求1、学习调试程序,查找逻辑错误;2、学习分支语句的编程和调试;3、学习循环语句的编程和调试。2实验环境实验的硬件环境是:IBMPC机及其兼容机实验的软件环境是: 操作系统:DOS 2.0以上;调试程序:DEBUG.COM;文本编程程序:EDIT.EXE、WPS.EXE;宏汇编程序:MASM.EXE(或ASM .E

2、XE);连接装配程序:LINK .EXE;交叉引用程序:CREF.EXE(可有可无)。3实验内容及实验数据记录1. 有10个数,统计正数的个数,存放在变量M中中。经过汇编后,形成EXE文件。在DEBUG中,先用G0命令执行程序,用D命令查看M单元的内容,会发现结果不正确。用单步执行命令T0,单步执行程序,查找程序中的逻辑错误,注意每一次循环中AL寄存器中值的变化是否正确。(AL寄存器中存放正数的个数)DSEGSEGMENT MSGDB 4, -2, -6, 0, 5, 67, 8, -3, 5, 6MDB ?DSEGENDSCSEGSEGMENT ASSUMECS: CSEG, DS: DSE

3、GSTART:MOVAX, DSEG MOVDS, AX MOVCX, 10 MOVAL, 0 LEASI, MSGL1:MOVBL, SI CMP BL, 0 JBENEXT INCALNEXT:INCSI LOOPL1 MOVM, AL MOVAL, 0 MOVAH, 4CH INT21HCSEGENDS ENDSTART2. 数据段中是一组无符号数,将最小数存放在M单元中。按上题方法查找一处逻辑错误。DSEGSEGMENT MSGDB 13, 15, 7, 25, 24M DB ?DSEGENDSCSEGSEGMENT ASSUMECS: CSEG, DS: DSEGSTART:MOVA

4、X, DSEG MOVDS, AX MOVCX, 4 MOVAL, MSG MOVSI, OFFSET MSG+1L1:CMP AL, SI JBNEXT MOVAL, SINEXT:LOOP L1 MOVM, AL MOV AL, 0 MOVAH, 4CH INT 21HCSEGENDS END START3. 编程:在首地址为BUF开始的内存单元中存有10个字节数,求其中0的个数,并将结果存于RESULT中。4. 编程:,Ai,Bi为字节型无符号数,分别存于NUM1和NUM2开始的连续存储单元中,结果存于REST单元中。4算法描述及实验步骤 1.操作步骤:(1) 编写源程序,并命名为1.A

5、SM保存到D盘m文件夹中;(2) 在DOS状态下,进入MASM目录; (3)输入命令:MASM 1.ASM;(4)在系统出现的提示中输入: object filename.obj:按回车键; source listlingnul.lst:输入:1; cross-reference nul.crf:按回车键;(5)系统没有提示错误,汇编完成,产生.obj文件; (6)输入:LINK 1.OBJ; run file .exe:按回车键。 list file nul.map:按回车键。 libraries .lib:按回车键。(7)没有提示错误,汇编过程结束,产生.EXE可执行文件;(8)输入DEB

6、UG 1.EXE; 使用G命令执行程序。 使用D命令查看M单元的内容。 使用T命令查看分步执行过程并找出错误原因。 使用Q命令退出DEBUG。(9) 修改程序并保存。(10) 重复上述1至8步。 2.操作步骤: (1)编写源程序,并命名为2.ASM保存到D盘m文件夹中;(2)在DOS状态下,进入MASM目录; (3)输入命令:MASM 2.ASM;(4)在系统出现的提示中输入: object filename.obj:按回车键; source listlingnul.lst:输入:2; cross-reference nul.crf:按回车键;(5)系统没有提示错误,汇编完成,产生.obj文件

7、; (6)输入:LINK 2.OBJ; run file .exe:按回车键。 list file nul.map:按回车键。 libraries .lib:按回车键。(7)没有提示错误,汇编过程结束,产生.EXE可执行文件;(8)输入DEBUG 2.EXE; 使用G命令执行程序。 使用D命令查看M单元的内容。 使用T命令查看分步执行过程并找出错误原因。 使用Q命令退出DEBUG。 (9)修改程序并保存。(10)重复上述1至8步。 3.程序算法:DSEGSEGMENT BUFDB 4, -2, -6, 0, 5, 0, 8, 0, 5, 6 RESULTDB ?DSEGENDSCSEGSEGM

8、ENT ASSUMECS: CSEG, DS: DSEGSTART:MOVAX, DSEG MOVDS, AX MOVCX, 10 MOVAL, 0 LEASI, BUFL1: MOV BL, SI CMP BL, 0 JNZ NEXT INCALNEXT: INCSI LOOPL1 MOVRESULT, AL MOVAL, 0 MOVAH, 4CH INT21HCSEG ENDS ENDSTART 操作步骤: (1)编写源程序,并命名为3.ASM保存到D盘m文件夹中; (2)在DOS状态下,进入MASM目录; (3)输入命令:MASM 3.ASM; (4)在系统出现的提示中输入: objec

9、t filename.obj:按回车键; source listlingnul.lst:输入:3; cross-reference nul.crf:按回车键; (5)系统没有提示错误,汇编完成,产生.obj文件; (6)输入:LINK 3.OBJ; run file .exe:按回车键。 list file nul.map:按回车键。 libraries .lib:按回车键。 (7)没有提示错误,汇编过程结束,产生.EXE可执行文件; (8)输入DEBUG 3.EXE; 使用G命令执行程序。 使用U命令查看程序执行过程。 使用D命令查看RESULT单元的内容。 使用Q命令退出DEBUG。 4

10、.程序算法: DSEG SEGMENT NUM1DB 4, 2, 6, 5, 8, 3, 6 NUM2 DB 5, 9, 8, 4, 2, 3, 7 RESTDW ? DSEG ENDS CSEG SEGMENT ASSUMECS: CSEG, DS: DSEG START: MOV AX, DSEG MOV DS, AX MOV CX, 7 MOV AL, 0 MOV DX, 0 LEA SI, NUM1 LEA DI, NUM2 L1: MOV BL, SI MOV AL, DI MUL BL ADD DX, AX INC SI INC DI NEXT: LOOP L1 MOV REST,

11、DX MOV AH, 4CH INT 21H CSEG ENDS ENDSTART 实验步骤: (1)编写源程序,并命名为4.ASM保存到D盘m文件夹中; (2)在DOS状态下,进入MASM目录; (3)输入命令:MASM 4.ASM; (4)在系统出现的提示中输入: object filename.obj:按回车键; source listlingnul.lst:输入:4; cross-reference nul.crf:按回车键; (5)系统没有提示错误,汇编完成,产生.obj文件; (6)输入:LINK 4.OBJ; run file .exe:按回车键。 list file nul.m

12、ap:按回车键。 libraries .lib:按回车键。 (7)没有提示错误,汇编过程结束,产生.EXE可执行文件; (8)输入DEBUG 4.EXE; 使用G命令查看执行程序。 使用U命令查看程序执行过程。 使用D命令查看REST单元的内容。 使用Q命令退出DEBUG。5调试过程 1.无错误。 2.无错误。 3.无错误 4.将REST拼写成了RSET导致错误。 6. 实验结果 1.从下面截图可以看见:原来的程序执行后,M的值为9,结果出错。 因为原程序中JBE为无符号数的跳转指令,从下面截图中可以看出,当负数的补码存在寄存器中时,直接与0比较大小,AL的值加1,导致错误 将程序中的JBE改为JLE后,从下面的截图中看出M中的值为6,结果正确。 2.从下面截图中可以看出,原来的程序执行后,M中的值为13,结果出错。 从下面截图中可以看出:整个循环语句中没有将SI移动的语句,所有循环语句全部是13与13比较,导致结果出错,将NEXT后面 LOOP L1前面加上一句 INC SI即可。修改后的程序执行后,M中的值为7,结果正确。 3.从下面的截图可以看出当BUF单元中的数为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论