- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言程序设计报告
课程设计报告
( 2011 —2012 年度第 1学期)
名 称: 汇编语言程序设计报告
题 目: 数据统计
院 系:
班 级:
学 号:
学生姓名:
指导教师:
设计周数:
成 绩:
日期:2011年 12月 30日
一、课程设计(综合实验)的目的与要求
掌握实验运行汇编语言所用的计算机机型
熟悉常用编辑程序(行编辑程序EDLIN、全屏幕编辑程序QE及其它用于文件编辑的应用程序。)
掌握汇编程序ASM、宏汇编程序MASM1.0以上。
LINK连接程序
DEBUG调试程序
二、设计(实验)正文
题目
以变量ADR为起始地址的字节存储单元中存放一组有符号整数,编写程序分别统计正数的个数、负数的个数和0的个数。
设计思路:
1. 以变量ADR为起始地址的字节存储单元中存放一组有符号整数。
2. 用变量NUM表示ADR存放有符号整数的个数。
3. 用伪指令DB定义DA1,DA2,DA3为不确定内容
4. 用SI表示ADR的首地址,SI自增表示依次读取ADR中所存的有符号的整数。
5. 将SI与0进行比较,SI0,DA1自增一次;SI0,DA2自增一次:SI=0,DA3自增一次。
6. 直到所有的数字运行一遍后,DA1,DA2,DA3的值便是正数,负数,0的个数
原程序设计如下:
DATA SEGMENT
ADR DB 13,-20,32,-5,0,56,-68,0,46,-17
NUM EQU $-ADR
DA1 DB ?
DA2 DB ?
DA3 DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
LEA SI,ADR
MOV CX,NUM
MOV AX,0
DONE1:
MOV AL,[SI]
CMP AL,0
JGE DONE2
INC BYTE PTR DA2
JMP END0
DONE2:
CMP AL,0
JZ DONE3
INC BYTE PTR DA1
JMP END0
DONE3:
INC BYTE PTR DA3
END0:
INC SI
DEC CX
JNZ DONE1
MOV AH,4CH
INT 21H
CODE ENDS
END START
三、课程设计(综合实验)总结或结论
通过对汇编语言程序设计短时间的学习,我知道了程序就是内存中的一段数据,我们可以将其当作代码,也可以当做数据,也可以作堆栈来使用。所以内存的这些数据如何使用,决定权在我们如何去定义,且让内存的数据与处理器产生联系去实现我们编程的目的。
而在操作ASM软件的过程中,我知道了很多指令的重要性,在编程的过程中,我们必须对所有我们所需要的指令有一定的了解,只有这样我们才能更快更准确的设计出我们想要的结果。
汇编的学习不仅仅是学习其语法,而更多的是学习计算机基本的体系结构。其中遇到很多新的概念,名字。如寄存器、中断、寻址方式等。这些概念在刚接触汇编这门课的时候难以理解,但在之后的学习中通过老师的讲解,自己亲手编程的方式也就渐渐清晰明了。
总之,在学习汇编语言时,指令的功能是学习和掌握的重点,我们应该准确有效并合理的使用这些指令,必须了解一些使用的规则。
四、参考文献
廖建明 《汇编语言程序设计》 清华大学出版社2009年10月第一版
附录(设计流程图、程序、表格、数据等)
1.设计流程图
2.在Masm for Windows中输入设计好的程序(截图如下)
在保存好文件后,点击运行,出现的界面如下
在输入反汇编指令u后,debug测试界面如下
再输入指令t后,可以显示每步运行的结果,其中蓝色下划线标注的即为其运行的程序。
程序运行结束后,数据段DS:000A,000B,000C分别DA1,DA2,DA3的值,它们表示数据中大于0,小于0,等于0的个数,13,-20,32,-5,0,56,-68,0,46,-17中有四个正数,四个负数,两个零,与实际结果相符。(截图如下)
文档评论(0)