欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    电子科技大学汇编实验报告.docx

    • 资源ID:5142624       资源大小:475.02KB        全文页数:27页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    电子科技大学汇编实验报告.docx

    .计算机专业类课程实验报告课程名称:汇编语言程序设计学 院:计算机科学与工程专 业:计算机科学与技术学生姓名:郭小明学 号 :2011060100010日 期 :2013 年 12 月 24 日.电子科技大学实验报告实验一学生姓名:郭小明学 号:2011060100010 一、实验室名称: 主楼A2-412二、实验项目名称:汇编源程序的上机调试操作基础训练三、实验原理:DEBUG 的基本调试命令;汇编数据传送和算术运算指令MASM 宏汇编开发环境使用调试方法四、实验目的:1. 掌握 DEBUG 的基本命令及其功能2. 学习数据传送和算术运算指令的用法3. 熟悉在 PC 机上编辑、汇编、连接、调试和运行汇编语言程序的过程五、实验内容:编写程序计算以下表达式:Z=(5X+2Y-7)/2设 X、Y 的值放在字节变量 VARX、VARY 中,结果存放在字节单元 VARZ 中。1. 编辑源程序,建立一个以后缀为.ASM 的文件.2. 汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中 错误行。无错时继续第 3 步。3. 连接目标程序,产生可执行程序。4. 用 DEBUG 程序调试可执行程序,记录数据段的内容。VARXVARYVARZ541052020六、实验器材(设备、元器件):PC 机 ,MASM 软件平台。七、实验数据及结果分析:程序说明:功能:本程序完成 Z=(5X+2Y-7)/2 这个等式的计算结果求取。其中 X 与 Y 是已知量,Z 是待求量。结构:首先定义数据段,两个 DB 变量 VARX 与 VARY(已经初始化),以及结果存放在 VARZ,初始化为?。然后定义堆栈段,然后书写代码段,代码段使用顺序程序设计本程序,重点使用 MOV 和 IMUL 以及 XOR,IDIV 完成程序设计。详细内容见程序注释。程序清单:调试说明:没有出现错误或者警告,下一步进行链接,连接目标代码程序和库函数代码生成可执行程序文件(.exe 文件),(LINK.exe);将汇编语言(.asm 文件)翻译为目标代码程序(.obj 文件)(MASM.exe);我们成功生成了 test1.exe. 然后输入 Debug 命令进入调试环境,-是 debug 命令提示符。我们执行-n test1.exe -l 装入我们的test1.exe然后我们-u 反汇编程序,得到程序的反汇编。1485 显然是我们的数据段逻辑地址我们来查看一下1485 : :0000到1485:1111 这 16 个字节的内容,理 论上应该是05,04,00.0005 正是 VARX04 正是 VARY 00 正是 VARZ正如我们所料下面是单步调试逐条执行汇编指令的操作。.现在我们执行程序(-g),然后再次查看数据段里面的内容VARZ 的内容变成了 0D事实上(5*5+4*2-7)/ 2 = 13 就是 0D开始程序框图:AX 与 AX 进行异或(置零)CX 与 CX 进行异或(置零)VARX AL5 CLALAL=AL * CL DLAX 与AX 进行异或(置零)VARYAL 2 CL.ALAL=AL * CL+ DL ALAL - 7 AL2 CL CL / 2=CLAL VARZ结束VARXVARYVARZ541310526202066九、实验结论:通过本次实验,我们学习了解掌握了 DEBUG 的基本命令及其功能,学习了数据传送和算术运算指令的用法,熟悉了在 PC 机上编辑、汇编、连接、调试和运行汇编语言程序的过程。完成了 Z = (5*X + 2*Y - 7)/ 2 算术式的编程计算,使用到了以上学习到的知识,并且利用了顺序程序设计的思想。通过本次实验,大大提升了对汇编程序设计这门课实践意义的理解,提高了编程能力和设计水平。另外在此感谢指导老师的辛勤工作!.电子科技大学实验报告实验二学生姓名:郭小明学 号:2011060100010 一、实验室名称: 主楼A2-412二、实验项目名称:分支程序与循环程序设计 三、实验原理:分支程序设计基本规范与调试方法,循环程序设计与调试方法;分配与使用寄存器的相关方法四、实验目的:1、掌握分支程序的结构。2、掌握分支程序的设计与调试方法。3、掌握循环程序设计与调试方法4、掌握正确分配与使用寄存器。六、实验内容:编程实现:分别统计下列 20 个数中大于 5、小于零和大于等于零且小于等于 5 的数据个数,分别存入字节单元 RES1、RES2 和 RES3 中。BUFF DB -1, 20, 3, 30, -5, 15, 100, -54, 0, 4, 78, 99, -12, 32, 3, 23, -7, 24, 60,-51六、实验器材(设备、元器件):PC 机,MASM 软件平台。七、实验步骤:程序说明:功能:本程序完成对一个数组当中大于 5,小于 0 以及大于等于 0 小于等于5 的数的个数的统计。分别存入字节单元 RES1、RES2 和 RES3 中。结构:首先定义数据段, BUF 数组的初始化,以及数组成员个数的统计以备循环时使用,以及结果存放在 RES1,RES2,RES3,初始化为 0。然后定义堆栈段,然后书写代码段,代码段使用分支与循环程序设计本程序,首先通过 LEA 指令获取 BUF 首地址,然后首地址每次加一之后就可以根据循环次数遍历整个数组,遍历的时候首先将获得数据与 0 进行比较,如果小于 0 跳转到 BELOW0(JL BELOW0)标号处执行,若不是的话再与 5 进行比较,如果小于等于 5 的话跳转到 BELOW5(JLE BELOW5 ;如果小于 5 则跳转 ),再然后的话数据必然是属于大于 5 的范围,由此统计三类数据的个数。详细见程序。程序清单:调试说明:将汇编语言(.asm 文件)翻译为目标代码程序(.obj 文件)(MASM.exe);没有出现错误或者警告,下一步进行链接,连接目标代码程序和库函数代码生成可执行程序文件(.exe 文件),(LINK.exe);我们成功生成了 test1.exe. 然后输入 Debug 命令进入调试环境,-是 debug 命令提示符。我们进入了 debug 程序调试环境现在我们反汇编该程序显然 1485 是我们数据段的首地址,我们来看看程序运行之前数据段里面的值,我们的数据段里面应该存放至 20 个数据值还有就是 3 个存放结果的值(初始都是 0)正如我们所料想的。下面是单步调试的结果。下面我们执行程序并查看运行程序之后的数据段里面的数据值。我们返现后面三个值变化了,确实分别记录了数组当中大于5,小于0 以及大于等于 0 小于等于 5 的三类数据的个数,与事实相符,验证我们的程序设计是正确的。得出: 大于 5 的数据共有:10 个小于 0 的数据共有:6 个大于等于 0 小于等于 5 的数据共有 4 个程序框图:开始取出表 BUF 的首地址放入 SI 当中COUNT CXNO结束CX>0?YESSI ALRES2RES2+1 YESAL<0?SI +1 SINOYESAL<=5?RES3 +1 RES3NORES1 + 1=RES1九、实验结论:通过本次实验,掌握了分支程序的结构特点,学习了分支程序的设计和调试方法,掌握了循环程序的结构特点并学习了循环程序的设计和调试方法,本程序完成对一个数组当中大于5,小于0 以及大于等于 0 小于等于 5 的数的个数的统计,运用了循环程序设计的思想, 本实验的原理框图较为复杂,但是框图给出了明确的思路和解题方向,是很好的学习方法。本次程序设计实验运用了数个跳转指令, JL ,JLE,跳转指令在循环程序设计过程中具有很重要的特点。另外在此感谢指导教师的辛勤工作!第二次实验共计两个程序,要求二选一,现在两个题目都做出解 答(实验三实验四)如 下,供老师批阅!电子科技大学实验报告实验三学生姓名:郭小明学 号:2011060100010 一、实验室名称: 主楼A2-412二、实验项目名称:串操作及其应用程序的设计与调试运行三、实验原理:串操作程序设计基本规范与调试方法;MASM 宏汇编开发环境使用方法循环程序设计与调试方法;分配与使用寄存器的相关方法五、实验目的:1、熟悉串操作指令的基本格式和使用方法。2、掌握常用的串操作程序的设计方法。3、熟悉串操作程序的调试运行过程七、实验内容:编程实现: 编制一程序,从键盘输入两个长度不同的字符串,设字符串长度小于25 个字符。要求在屏幕上以右边对齐的方式显示出来。六、实验器材(设备、元器件):PC 机,MASM 软件平台。八、实验步骤:程序说明:功能:本程序完成两个字符串的键盘输入并且右对齐输出字符串。 结构:1、在数据段中设置两个存放显示信息的字符串,一个是提示用户输入, 另一个是提示显示信息位置2、在数据段中设置两个存放输入字符串的缓冲区3、输入字符串曹勇 0AH 号 DOS 功能调用,字符串存入缓冲区时,第二个字节为实际输入字符串的长度,从第三个字节开始为字符串的 ASCII 码。4、为了显示右对齐,由于两个字符串缓冲区的长度相同,只需要将两个字符串向缓冲区后面靠齐,再调用 09H 号 DOS 功能调用即可达到显示的右对齐。程序清单:调试说明:将汇编语言(.asm 文件)翻译为目标代码程序(.obj 文件)(MASM.exe);没有出现错误或者警告,下一步进行链接,连接目标代码程序和库函数代码生成可执行程序文件(.exe 文件),(LINK.exe);我们成功生成了 test3.exe. 然后输入 Debug 命令进入调试环境,-是 debug 命令提示符。我们进入了 debug 程序调试环境现在我们反汇编该程序下面是单步调试的过程.下面运行该程序:正如我们所料想的。我们输入-g 调试命令之后,提示输入字符串,在输入两个字符串之后就右对齐的输出了两个字符串。开始2 CXLEA BX,STRING1NOCX>0?YES显示提示输入字符串的信息.MOVECH 异或置零程序框图:获取要传送的字符串字节数送入 CLMOV CL,-1BXMOV SI,CXDEC SIADD SI,BX获取传送源串地址 SI输入一个字符串LEA BX,STRING2CX -1 CXLEA BX,STRING1+2调用MOVE 子程序字符串右对齐处理LEA BX,STRING2+2调用MOVE 子程序字符串右对齐处理输出右对齐字符串MOV DI,BX ADD DI,NUM-1获取传送目的串地址STD设置 DF 为 1,SI 每次减去 1REP MOVSB进行字符串传送剩余字节填空格返回结束九、实验结论:本实验完成了串操作指令及其应用程序的设计与调试运行实验, 学习了汇编语言程序设计过程中的数据输入方法和字符串存储特点, 以及利用串操作命令来将缓冲区大小一致的两个字符串右对齐输出。本次实验很有难度,提升了我们设计复杂汇编程序的能力。在此感谢指导教师的辛勤指导!.电子科技大学实验报告实验四学生姓名:郭小明学 号:2011060100010 一、实验室名称: 主楼A2-412二、实验项目名称:数制、码制和子程序的编制与调试 三、实验原理:数制、码制和子程序设计基本规范与调试方法;MASM 宏汇编开发环境使用方法; 循环程序设计与调试方法;分配与使用寄存器的相关方法四、实验目的:1、熟悉子程序设计的基本格式和使用方法。2、掌握常用的数制码制转换程序的设计方法。3、熟悉子程序程序的调试运行过程五、实验内容:从键盘输入两个 2位十进制正数,对这两个正数进行加法运算,结果以十六进制数的形式显示在屏幕上。六、实验器材(设备、元器件):PC 机,MASM 软件平台。七、实验步骤: 程序说明:本实验用到了两个子程序,一个是将十进制数转换成二进制数的子程序 DTOB,还有就是讲二进制数转换为十六进制数的BTOH。在程序运行的时候我们首先输入两个十进制数,然后分别转换为二进制数(利用子程序 DTOB)之后加法计算出二进制结果然后我们再利用子程序 BTOH 转出 16 进制最终结果。程序清单:DATA SEGMENTSTR1 DB 3,0,3 DUP(?) STR2 DB 3,0,3 DUP(?) TEMPSTR DB ?RESSTRDB 0,0,'$' DATA ENDSSTACK1 SEGMENT PARA STACK DW 20H DUP(0)STACK1 ENDS CODE SEGMENTASSUME CS:CODE,SS:STACK1,DS:DATABEGIN:MOV AX, DATA MOV DS, AXLEA DX, STR1 MOV AH, 0AH INT 21HLEA DX, STR2 MOV AH, 0AH INT 21H CALL DTOB CALL BTOHLEA DX, RESSTR MOV AH, 9INT 21HMOV AH, 4CH INT 21HDTOBPROCPUSH AX PUSH CX PUSH DXMOV AL, STR1+2 SUB AL, 30HMOV DL, 10 MUL DLADD AL, STR1+3 SUB AL, 30HMOV TEMPSTR, AL MOV AL, STR2+2 SUB AL, 30HMOV DL, 10 MUL DLADD AL, STR2+3 SUB AL, 30HADD AL, TEMPSTR MOV TEMPSTR, AL POP DXPOP CX POP AX RETDTOB ENDPBTOH PROCPUSH AX PUSH BXPUSH CX PUSH DX MOV CH, 2MOV DL, TEMPSTR LEA BX, RESSTRCONV:MOV CL, 4ROL DL, CL MOV AL, DL AND AL, 0FH CMP AL, 09H JLE ASCI ADD AL, 07HASCI: ADD AL, 30HMOV BX, AL INC BXDEC CH JNE CONV POP DX POP CX POP BX POP AX RETBTOH ENDPCODE ENDS END BEGIN调试说明:将汇编语言(.asm 文件)翻译为目标代码程序(.obj 文件)(MASM.exe);没有出现错误或者警告,下一步进行链接,连接目标代码程序和库函数代码生成可执行程序文件(.exe 文件),(LINK.exe);我们成功生成了 test4.exe. 然后输入 Debug 命令进入调试环境,-是 debug 命令提示符。我们进入了 debug 程序调试环境现在我们反汇编该程序下面是单步调试的过程下面运行该程序:正如我们所料想的。我们输入-g 调试命令之后,提示输入数据,在输入两个数据 10 和 18 之后我们得出了 10+18 的十六进制结果 1E,然后程序结束。八、实验结论:本实验完成了数制,码制子程序调试设计及其应用程序的设计与调试运行实验,学习了汇编语言程序设计过程中的数据输入方法和字符串存储特点,以及利用码制转换将两个十进制数相加并以十六进制形式输出。在此感谢指导教师的辛勤指导!

    注意事项

    本文(电子科技大学汇编实验报告.docx)为本站会员(陆**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开