《【奥鹏电大】大工22春《汇编语言程序设计》大作业及要求》由会员分享,可在线阅读,更多相关《【奥鹏电大】大工22春《汇编语言程序设计》大作业及要求(5页珍藏版)》请在金锄头文库上搜索。
1、大连理工大学远程与继续教育学院汇编语言程序设计课程设计学习中心: 请核对题目一致再下载 专 业: 年 级: 年 春/秋 季 学 号: 学 生: 题 目: 题目二:折半查找算法 1.谈谈你对本课程学习过程中的心得体会与建议? 汇编语言程序设计是我院计算机专科的一门专业课。本课程是面向机器的一门编程语言课。在对汇编语言的学习过程中,可以对计算机组成原理有更深入的了解,同时掌握汇编语言对于某些硬件编程比如单片机开发和嵌入式系统的开发应用也是必不可少的。汇编语言相比于其他高级语言明显的优点就是运行速度快,而缺点就是需要兼顾机器本身的硬件结构特点进行编程,因此学习本课程要多实践多思考。通过本课程的学习可
2、以对汇编语言有一个整体的把握和认识。在课堂中听到的关于汇编语言中的循环和分支程序的知识点,通过这次实验,我们将它实践化了,使得我们更深一步的认识和理解了循环程序和分支程序。在实验中,暴漏出来的问题就是,对于一些符号它所代表的是什么还是不熟悉,导致程序出现问题,因此,以后还要多看书,多练习,加强这方面的记忆。这次实验所学到的印象最深的就是LOOP循环以及有符号数跳转JLE。总体上来讲,有些知识点理解的还不到位,希望通过以后的练习能加强对这些知识点的理解。 题目二:折半查找算法要 求:(1)撰写一份word文档,里面包括(算法思路、算法程序框图、主要函数代码、使用指令具体含义)章节。(2)算法思路
3、:简单介绍折半查找算法的基本思想,至少100字。(3)算法程序框图:绘制流程图或原理图,从算法的开始到结束的程序框图。(4)主要函数代码:列出算法的具体代码,如讲一个首地址为A的N字数组,编制程序将该数组中的数据按照从大到小排序。(5)列出算法中使用指令的含义,比如解释MOV指令的含义,CMP指令的含义,至少撰写十个指令。总 则:只能使用汇编语言进行编制,不能选用C/C+等高级语言!答:(一) 算法思路以处于区间中间位置的数据和给定值比较,若相等,则查找成功;若不等,则缩 小范围,直到新的区间中间位置的数据等于给定值或查找区间的大小小于零是为止。(二) 算法程序框图 (三)程序DSEG SEG
4、MENTSCORE DB 1H,2H,3H,4H,5H,6H,7H,8H,90 DUP(12H),13H,14H DSEG ENDS CSEG SEGMENT ASSUME DS:DSEG,CS:CSEG START: MOV AX,DSEG MOV DS,AX MOV AH,1 ;输入第一个字符 INT 21HMOV AH,10 ;十进制数SUB AL,0MUL AHMOV DH,ALMOV AH,1 ;输入第二个字符INT 21HSUB AL,0ADD DH,AL ;最后的十进制数存放在 DH 中MOV AH,1 ;接收回车符 INT 21H MOV DL,10 ;输出换行 MOV AH,
5、2 INT 21H LEA BX,SCORE ;数组的首地址放在 BX 中 MOV CL,99 ;max 初始值为 99 XOR Ax,Ax ;min 初始值为 0 XOR CH,CH ;清零 L1: CMP AL,CL ;注意不能将“JG”写成“JA”,即应该是带符号数比较 JG L3 ;否则当你输入“00”时,将不输出结果 MOV DI,AX ;实现 mid=(max+min)/2 ADD DI,CX SAR DI,1 CMP DH,BYTE PTRBX+DI ;key 和 amid的比较 JZ L4 ;找到 CMP DH,BYTE PTRBX+DI ;keyJB L2 INC DI ;min=mid+1 MOV AX,DI JMP L1 L2: DEC DI ;max=mid-1 MOV CX,DI JMP L1 L3: MOV DL,N ;存入 DL,以待输出 JMP L5 L4: MOV DL,Y L5: MOV AH,2 ;输出结果 INT 21H MOV AH,4CH ;返回操作系统 INT 21H CSEG ENDS END START 注意输入输出格式的控制。