资源描述:
《北京理工大学汇编实验一》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、汇编语言实验报告实验一DOS环境下的汇编语言编程环境使用(基础与验证型)班级:姓名:学号:实验日期:一、实验要求和目的1、掌握汇编语言程序设计的基本流程和学会上机开发简单程序;2、熟练掌握宏汇编程序MASM的使用;3、熟练掌握连接程序LINK的使用;4、熟练掌握DEBUG的使用;二、软硬件环境1、硬件环境:计算机系统windows;2、软件环境:装有MASM、DEBUG、LINK、等应用程序。三、实验涉及的主要知识汇编语言程序设计上机开发过程如图1.1所示。四、实验内容与步骤1、汇编、链接并调试下面给出的简单程序,找出程序中的错误。(一)录入
2、并建立汇编语言源程序文件(ASM文件)(二)用汇编程序MASM将ASM文件汇编成目标程序文件(OBJ文件)(三)用连接程序LINK生成可执行程序文件(EXE文件)(四)程序的调试2、完成下列程序设计:分类统计字数组data中正数、负数和零的个数,并分别存入内存字变量Positive、Negative和Zero中,数组元素个数保存在其第一个字中。使用Debug查看Positive、Negative和Zero三个变量的数据。五、实验过程及结果:1.实验一1)在文本文档中输入所给的程序;2)将文件另存为.ASM后缀的文件;3)在DOS下使用masm
3、命令进行编译,提示错误;4)查看22行,发现AFFITION后缺少冒号,在添加冒号之后,错误减少为一处;5)查看25行之后发现指令COM不是正确的比较指令,将其改为CMP之后,编译不再提示错误,更正成功。2.实验二1)根据题目要求,绘制如下流程图:输入数据大于0小于0和0比较和等于0P计数Z计数N计数器加1器加1器加1考虑数据个数仍有数据数据检测完毕结束2)根据流程图编写程序如下:DATA1SEGMENTMOVDS,AXDATADB7,0,8,6,-2,-MOVCX,85,2,-4MOVBX,OFFSETDATAPOSITIVEDB0S:MO
4、VAL,[BX]NEGATIVEDB0CMPAL,00ZERODB0JEEQUALDATA1ENDSJSSMALLSTACKSEGMENTJNSLARGESTADB20DUP(?)topequsizestaEQUAL:STACKENDSINCZEROcodesegmentINCBXassumeJMPMcs:code,ds:data1SMALL:Start:INCNEGATIVEMOVAX,data1INCBXJMPMMOVAL,POSITIVELARGE:MOVDH,ZEROINCPOSITIVEMOVDL,NEGATIVEINCBXMOVA
5、H,4CHJMPMINT21HM:CODEENDSLOOPSENDSTART3)测试数据为7,0,8,6,-2,-5,2,-4,则应有4个正数,3个负数,1个零;4)进行编译测试,进行到反汇编-U时得到如下结果:使用-G3A,分别观察AL,DH,DL的值,得到如下结果:分别为4,1,3,结果正确。六、实验感想1.本次实验是我第一次进行有关汇编程序的编写,所以操作起来十分生疏,甚至一开始时完全不知道如何下手。再仔细研究了书上的一些例题,并经过无数次的尝试之后,这才终于编出了这个程序。就好像当初学习C语言时一样,第一个程序HelloWorld虽然
6、很简单,但我仍然实话了很多功夫才将他编完。在这个过程中,我对如何编写汇编程序有了一个初步的认识,为我以后的编程奠定了基础。2.在编程过程中遇到了很多问题,有一些已经解决但仍有一些仍旧困扰着我,最重要的就是如何通过debug观察内存数据,我仍然比较模糊,希望能在以后的学习中强化这方面的知识。