欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    汇编实验报告汇总.docx

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

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

    汇编实验报告汇总.docx

    1、汇编实验报告汇总湖北工程学院计算机与信息科学学院实验报告20132014学年第 二 学期课程名称: 汇编语言程序设计 班 级: 1217142 学 号: 012301714208 姓 名: 雷震 任课教师: 叶从欢 实验一:顺序结构一、实验目的: 1.加深对汇编的理解;2.掌握汇编程序的设计方法;3.学会使用顺序结构。二、实验内容: 定义变量A、 B、 C、 D,编写程序实现:(a * b + c - 70) / a。并将最后的商保存在D中,余数保存在D+2中。本实验中: a = 15, b = 75, c = 70。 程序中,定义字型变量A、B、C、D。A、B、C分别保存算数表达式中的数值a

    2、、b、c,D保存算数运算的最终结果。程序开始,先将变量A、B、C赋初值,计算A乘以B的值,将结果保存在DX、AX中,然后逐步计算A*B+C, A*B+C-70和(A*B+C-70)/A。最后计算结果的商保存在AX中,余数保存在DX中,最终将AX赋值给D,DX赋值给D+2。程序运行完毕,程序返回。三、实验步骤1.程序设计流程图2.调试与运行 (1)首先进入DOS系统,进入目标文件所在的系统盘和文件夹; (2)输入“MASM TEST”,此命令是调用宏汇编程序MASM对源文件TEST.ASM进行编译,TEST是文件的名称,生成目标文件TEST.OBJ; (3)若汇编无错误,则用命令“LINK TE

    3、ST”进行连接,生成可执行文件TEST.EXE;(4)若连接成功,则用命令“TEST”运行。 四总结与体会通过这次实验,我初步了解了汇编程序设计的基本方法和步骤,掌握了汇编程序设计的顺序结构。顺序结构是其他结构的基础,学好顺序结构对进一步学习汇编的好处不言而喻。在本程序中,主要分为加法,减法,乘法,除法,本程序基本实现了四则运算的功能,该程序所完成的运算式为:(a * b + c - 70)/ a。并将运算结果存入变量D中,而余数存入D+2中。改程序的不足之处是还没能实现除法运算中不能运算较大的数,会产生溢出现象。完成了这次实验后,对汇编产生了兴趣,而且拥有的信心,以后的学习会再接再厉!指导教

    4、师: 叶从欢_ _ 实验二:分支结构1、实验目的1熟悉汇编语言程序设计结构;2了解汇编语言循环程序设计的基本流程;3. 熟悉汇编语言循环基本指令的使用方法;4掌握利用汇编语言实现分支程序设计方法;5熟悉汇编语言分支程序基本指令的使用方法;6掌握利用汇编语言的循环指令完成循环程序设计方法。二、实验内容: 根据X的正、负、零来实现分支结构,最终分别输出不同的结果。1.当X为正数时,将字符串变量Y中的内容“NAMEleizhen$”全部以大写字母输出;2.当X为负数时,将字符串变量Y中的内容“NAMEleizhen$”全部以小写字母输出; 3.当X为0时,将字符串变量BUF中的内容“X:0!$”输出

    5、。 程序中,当X小于零时,转到A1标记,A1、A2、A3处理将Y中内容小写输出;当X大于等于0时,转到B1标记,在B1处判断X大于0还是等于0;当X等于0时,输出BUF中的内容;当X大于0时,程序跳转到C1标记,C1、C2、C3处理将Y中的内容大写输出。三、实验步骤1.程序设计流程图 Y Y N N Y NN2.调试与运行 编译运行文件test2.asm: (1)将X的值设为正数,运行程序后,Y中“NAMEleizhen$”所有小写字母变为大写; (2)将X的值设为负数,运行程序后,Y中“NAMEleizhen$”所有大写字母变为小写: (3)将X的值设为0,运行程序后,输出BUF“X:0!$

    6、”。 四、总结体会通过本次实验,让我更加了解了汇编语言的基本要求和步骤,深入了解指令执行的方式和不同的转移方式对应不同的机器码,提高自己动手能力。本程序中利用利用X值的不同,从而对字符串BUF中的大小写进行相应的变换。增加了程序的灵活性,让程序不在显得很死板。这是程序设计的一个很大改善。完成分支程序设计后,我对分支程序的结构也有了一定的理解,分支程序的结构很好的体现出了人对于问题的想法和解题思路,结构比较好理解和有条理。这次实验也让我学到了许多汇编语言代码的意义和用法,为以后更加熟练操作编程提供方便。 指导教师: 叶从欢 实验三:循环结构一、实验目的1 加深对循环结构的理解;2 掌握循环程序的

    7、设计方法;3掌握程序接受用户从键盘输入数据的方法;4加深提示用户输入数据的这一习惯。二、实验内容: 由用户从屏幕输入一个字符串,利用循环,将字符串中的大写转化为小写,小写转化为大写,然后逆序并输出。 程序中,INFO1和INFO2分别保存进行输入和输出的提示字符串;BUF保存输入字符串缓冲区的大小;LEN保存输入字符串的长度;STR1保存输入字符串的串首偏移地址;STR2保存装换后的字符串。程序开始,进行9号调用输出提示信息INFO1,然后10号调用录入用户输入的字符串,然后换行。将字符串长度保存在CL中,DI指向STR1的字符串尾, SI指向STR2的串首偏移地址,对读写字符进行控制。CON

    8、T标号中利用循环逐一从STR1中取出字符,如果ASCLL码大于或等于a,跳到BIG标号处,进行大写转小写操作,如果比a小,而且大于或等于A,则跳到SMALL标号处进行小写转大写操作,接着跳到FINAL对循环条件进行更改,如果CL不为0,则继续跳到CONT标号处进行循环。最后先利用2号调用输出一个回车,然后9号调用输出STR2字符串,进入到EXIT标号,程序结束。三、实验步骤1.程序设计流程图 Y N Y Y N2.调试与运行 编译运行文件test3.asm: (1)编译运行源程序,出现提示用户输入的字符串; (2)用户输入字符串: (3)显示转换后的字符串: 四、总结体会 通过运行分析源程序,

    9、让我更加了解了循环程序的基本要求和步骤。不仅如此,本程序还增加了输入输出提示功能,这在程序设计中是一个很重要的内容。在设计的过程中,在换行上出现了不少的问题,比如本来要输出的字符串从本行开始覆盖了提示字符串,没有出现在它该出现的位置。对此,我的解决方案是先输出一个换行,然后再输出一个回车,从而解决了我的问题。 在程序设计中,就要有这种独自探索的思想,发现问题,解决问题。这次的实验让我更加了解了汇编,受益匪浅! 指导教师: 叶从欢 实验四:双重循环结构一、实验目的1.加深对循环结构的理解;2.掌握双重循环程序的设计方法;3.掌握程序接受用户从键盘输入数据的方法;4.加深提示用户输入数据的这一习惯

    10、;5.加深对编程的独立探索能力。二、实验内容: 由用户从屏幕输入连续的一串正整数,利用冒泡排序法,进行排序并输出。 程序中,INFO1和INFO2分别保存进行输入和输出的提示字符串;BUF保存输入字符串缓冲区的大小,BUF+1保存输入字符串的长度;BUF+2保存输入字符串的串首偏移地址。程序开始,进行9号调用输出提示信息INFO1,然后10号调用录入用户输入的字符串,然后换行。将字符串长度保存在CL中。冒泡排序需要用到两层循环,均用CX对循环进行控制。进入里层循环时,用BX 保存当前CX的值。循环开始,SI指向输入字符串的串首,逐一进行内循环将偏移地址SI中的内容与偏移地址 SI+1中的内容进

    11、行比较,如果前者大于后者,则将两数进行交换;CX控制循环的次数,当CX减至0时,内层循环完成一次,此时将当前比较的字符中最大的移动到末尾。退出内循环进入外层循环,将保存在BX中的数赋值给CX,若CX不为1,则继续进入到内循环执行。否则循环执行完毕,冒泡排序结束。最后先利用9号调用分别输出提示输出字符串和排好序的字符,程序结束。三、实验步骤1.程序设计流程图 Y N N Y Y N2.调试与运行 编译运行文件test4.asm: (1)编译运行源程序,出现提示用户输入的字符串; (2)用户输入字符串: (3)显示冒泡排序后的字符串: 四、总结体会 通过运行分析源程序,让我更加了解了双重循环程序的

    12、基本要求和步骤。本程序还增加了输入输出提示功能,这在程序设计中是一个很重要的内容,提高了程序设计的灵活、通用性。除此之外,本程序实现了对用户输入的任意09间的字符进行排序。因为要将排好序的数存放在原地址上,而且又是用户自己输入,所以,在一开始开辟内存单元时,就全部初始化为$符号,方便了最终程序利用9号调用对用冒泡排好序的字符进行输出。 在设计此程序时,不免失败了很多次,但是当最终成功的时候,那种快乐时用言语无所表达的。这次的实验让我更加了解了汇编,受益良多! 指导教师: 叶从欢 实验五:子程序一、实验目的1. 加深对子程序的理解;2. 掌握子程序的设计方法;3 学会使用while循环结构;4

    13、不同模块间程序的调用和调试;5学会利用子程序的特点减少程序的冗余度; 6. 加深对编程的独立探索、创新能力。二、实验内容: 利用子程序输出6行8列的平行四边形图形。 程序中,INFO保存输出提示字符串。START标号指示代码段的开始;LOP标号指示调用BLANK子程序,输出空格;TAG标号指示调用GRAPH子程序,输出*号;EXIT标号指示主程序的退出。BLANK子程序中LOP1标号指示输出空格循环的开始,GRAPH子程序中LOP2标号指示输出星号循环的开始。程序开始,进行9号调用输出提示信息INFO,然后换行。用BX存放总的循环次数,5次。将BX赋值给CX,CX控制BLANK子程序中输出空格

    14、的次数。进入LOP标记,调用BLANK子程序,输出空格。然后进入TAG标记,调用GRAPH子程序,输出星号。输出一行图形后,对循环条件进行更改,将BX减1,如果BX小于0,则整个外层循环完成,程序退出。否则将BX赋值给CX,继续跳转到LOP标记进行循环。BLANK子程序中,利用while循环结构对空格进行输出。首先将循环条件CX减1,对CX进行判断,如果CX小于0,则程序返回,否则就输出一个空格。然后就继续跳转到BLANK中的LOP1标号进行循环。GRAPH子程序中,保存主程序中用到的CX,并将CX赋值为8。利用do-while循环,输出8个星号,然后输出换行,对进行下次图形输出做准备。三、实

    15、验步骤1.程序设计流程图主函数流程图: N Y BLANK函数流程图: N Y GRAPH函数流程图: Y N2.调试与运行 编译运行文件test5.asm: 编译运行源程序,屏幕出现平行四边形图案四、总结体会 这次实验学习了子程序的编写以及主程序和子程序的调用,不同模块间程序的调用和调试方法,实践的过程中加深了对子程序调用的代码的使用,让我更加了解了子程序设计的基本格式和步骤。 本实验中用到了两个子程序,分别实现了输出空格和输出星号的功能。在编写输出空格子程序时,由于当CX等于0时,仍然要执行一次循环,如果用do-while循环,则要将CX减1,则CX中存储的内容变成了-1的补码,也就是25

    16、5,使得程序陷入死循环。在此的处理办法是将do-while循环改写成while循环,执行循环内容之前先对条件进行判断,从而解决了这个难题。 好的程序都是调试出来的,而不是写出来的。所以在编程过程中,我们应该有耐心去一步步的调试程序,发现问题,解决问题,最终走向成功。 指导教师: 叶从欢 实验六:宏程序一、实验目的1. 掌握宏的应用;2. 掌握宏的定义和使用;3. 加深对宏程序的理解;4. 掌握创建宏组和条件宏的方法;5加深对编程的独立探索、创新能力; 6. 学会利用宏程序的特点减少程序的冗余度。二、实验内容: 利用宏程序实现将输入的字符串逆序输出,要求尽可能提高时间复杂度。 本程序没有开辟一个

    17、新的空间来存储逆序后的字符串,而是直接在原存储区上对输入字符串进行改变。不仅如此,本程序每次循环逐一将首尾字符进行交换,这样将时间复杂度由原来的O(N)提高到O(n/2)。 程序中,INFO1保存输入提示字符串,INFO2保存输出提示字符串。BUF指示缓冲区的大小,LEN指示输入字符串的长度,STR指示输入的字符串。程序开始,利用定义在MACRO.LIB中的定义的宏进行宏调用,RETURN输出回车换行符,PRINT输出字符变量INFO1,INPUT从键盘输入字符带缓冲区。将输入字符串串首的偏移地址赋给SI,将AH,CH初始化为0,将输入字符串长度LEN赋给AL,然后将字符串长度加到SI中,此时

    18、SI指向输入字符串尾的后一个字节。将BX赋值为2,将字符串长度除以2,将除得的商作为循环次数赋值给CX。接着,将SI里面的数据减1,将输入字符串串首的偏移地址赋给DI。此时,SI指向输入字符串的最后一个字符,DI指向输入字符串的第一个字符。循环开始,将偏移地址SI中的字符赋给AL,交换AL和偏移地址DI中的字符,最后将AL中的字符赋给偏移地址为SI的内存单元,完成首尾字符的交换。更改循环条件,将DI后移一个字符,SI前移一个字符,循环条件CX减1。循环完成后,利用宏程序调用,RETURN输出回车换行符,PRINT输出字符串变量INFO2,PRINT输出变换后的字符串STR。程序返回,执行完毕。

    19、三、实验步骤1.程序设计流程图 Y N 2.调试与运行 编译运行文件test6.asm: 1.运行源程序,屏幕出现输入提示字符串:2.按照提示输入字符串:3.回车输出逆序后的字符串:四、总结体会这次实验学习了子程序的编写以及主程序和子程序的调用,不同模块间程序的调用和调试方法,实践的过程中加深了对子程序调用的代码的使用,让我更加了解了子程序设计的基本格式和步骤。宏是源程序中一段有独立功能的代码,需要在源程序中定义一次,就可以多次调用,调用时只需要一个宏指令语句就行了。在需要传送的数据较多的时候使用宏会变得更加有利。注意事项:1.宏指令库在编写时,要特别注意保存要有到的寄存器,并且对宏指令的执行

    20、逻辑要非常清晰,保证当形参被替换为实参时,展开的汇编语句是正确的,否则将会出现错误;2.宏指令在定义时,一个好的习惯是在其代码前面加以说明,解释对应宏指令的功能和执行逻辑。这样在使用时才能根据需要使用不同的宏指令,也方便代码阅读。3.宏指令和子程序的用途可以简单的总结为:通常宏指令被用在代码较短且参数较多的场合,而子程序则被用在代码较长的场合。 指导教师: 叶从欢 总结通过这次汇编课程设计的学习,我在汇编语言方面收获了很多东西。同C语言一样,汇编也有顺序、分支和循环结构,通过此次对汇编的学习,对基本的顺序、分支和循环结构有了更加深刻的了解。与C语言所不同的是,汇编中还有子程序和宏程序结构,通过此次的学习在宏定义,宏调用和子程序定义,调用方面我学到了更多的知识,子程序和宏程序就像C语言中的函数一样,通过使用子程序和宏程序让程序更加简洁易懂,减少程序代码的重复性。都说计算机的语言都是相同的,如此可见一斑。此外,这次课程设计让我认识到了上课认真听讲的必要性,老师在课堂上讲解的许多知识都很重要,在本次课程设计中就充分体现了这一点,所以学好课堂老师讲解的知识是很有必要的。从今往后,我会加倍努力学习汇编方面的知识,使自己的能力得以提高,以便未来能在本专业的道路上走的更远、更好。


    注意事项

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

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开