2022年汇编语言课程设计方案报告 .docx
《2022年汇编语言课程设计方案报告 .docx》由会员分享,可在线阅读,更多相关《2022年汇编语言课程设计方案报告 .docx(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选学习资料 - - - - - - - - - 汇编语言课程实习报告实习题目 运算竞赛成果同学姓名 蔡洁敏班级(学号)计科 1123班 202211621301 院系 信息学院运算机系指导老师 叶晓霞提交时间 2022 年 5 月 28 日成果名师归纳总结 - - - - - - -第 1 页,共 12 页精选学习资料 - - - - - - - - - 目 录名师归纳总结 1 课程实习任务 2 第 2 页,共 12 页2 基本学问 2 2.1 汇编语言程序结构 3 2.2 关键指令分析 4 2.3 汇编语言上机过程 4 3 总体分析 5 3.1 程序功能分析 5 3.2 设计思路 5 3.
2、3程序框图 6 4 代码实现 7 5 调试过程及操作说明 11 6 总结 12 7 参考文献 12 - - - - - - -精选学习资料 - - - - - - - - - 1 课程实习任务运算竞赛成果系统基本功能:(1) 有 9 名评委,每个评委给分范畴为010(整数):由键盘输入;(2) 9 名评委给分中,去掉一个最高分和一个最低分,剩余 7 名评委的平均 分即为参赛者的得分(精确到小数点后二位,不考虑四舍五入);(3) 将最 后得分在光标位置处显示出来;2 基本学问2.1 汇编语言程序结构 汇编语言是运算机能够供应应用户使用的最快而又最有效的语言,也是能 够利用运算机全部硬件特性并能掌
3、握硬件的唯独语言;也因此汇编语言的程序 结构也是多种多样的,我们熟知的结构有循环、分支程序、子程序和宏汇编;而循环程序又有简洁循环和多重循环,最重要的是我们要掌握好循环的次数;分支程序就是由设定条件不同而跳转到不用的分支,来实现不同的功能;子程序就是我们为了把整个程序模块化,使得读程序的人简洁懂得你的程序功能;宏就是一种另类的子程序,是有些程序为了能在时间上达到严格的要求和一些 功能代码简短的多参数传递的程序为了便利参数传递而使用的,而牺牲一点点 空间来实现,当然宏和子程序的工作机制也是不同的;2.2 关键指令分析 2.2.1 数据传送指令 mov 指令: mov 指令可以在 CPU 内或 C
4、PU 和储备器之间传送字或者字节; PUSH 和 POP指令:这两条分别是堆栈的进栈和出栈指令; XCHG 指令:它可以在寄存器之间或者在寄存器和储存器之间交换信息;2.2.2 地址传送指令 LEA 指令:将源操作数的有效地址送到指定的寄存器中;不能使用段寄存名师归纳总结 - - - - - - -第 3 页,共 12 页精选学习资料 - - - - - - - - - 器,源操作数可以使用除立刻数和寄存器外的任一种寄存器寻址方式;2.2.3 类型转换指令 CBW 指令:将 AL 的内容符号扩展到 2.2.4 算数指令AH,形成 AX 中的字 ADD 指令:进行加法操作 INC 指令:自加 1
5、 SUB 指令:进行减法操作 DEC 指令:自减 1 CMP 指令:将两个操作数进行减法操作,但不储存结果,只设置条件标志位MUL 指令:进行无符号乘法操作 DIV 指令:进行无符号除法操作 2.2.5 逻辑指令 AND 指令:进行规律与操作,见0 得 0 OR 指令:进行规律或操作,见1 得 1 XOR 指令:进行异或操作,相同得 JMP指令:无条件跳转到指定位置0,不同得 1 2.2.6 掌握转移指令条件转移指令:依据上一条指令所设置的条件码来判别测试条件,每一种转 移指令有它的测试条件,满意测试条件就转移到指令指定的位置 LOOP 指 令: 当测试条件码 CX 不为 0 时,循环指定程序
6、段 CALL 指令:把子程序的返回地址存入栈中,以便子程序返回主程序时调用 RET 指令:转移到子程序的入口地址去连续执行 2.3 汇编语言上机过程 上机过程是我们编写好程序后验证的最好手段,也是我们对我们写得程序进行调试必不行少的一个过程;上机过程我们第一要把我们编写的程序在编译 器里对它进行编译看看是否有语法上的错误,然后编译生成 .obj 文件,最终连 接生成可执行文件 .exe,然后我们要对生成的可执行文件进行调试,看看是否 有规律上的错误,假如有规律上的错误那么我们仍要对程序进行修改,知道没有规律上的错误时,我们就可以运行程序,并得到我们想要的结果了;上机过程大致课分为四部分:编辑、
7、编译、调试、运行;名师归纳总结 - - - - - - -第 4 页,共 12 页精选学习资料 - - - - - - - - - 只有通过上机过程你才能发觉你的程序是否有规律上或者语法上的错误,最 重要的是检测运行结果是不是你理论上的结果;我们只有在上机过程中才 能发觉问题,然后解决问题,最终得到我们想要的结果;3.总体分析 3.1 程序功能分析通过读取依次从键盘输入的9 个两位的十进制数得分,将得分储存在字符串中,然后用冒泡法将 9 个数的位置按大小重新排列并输出,再将中间的 7 个 数累加起来除以 7,即得到去掉最高分和最低分之后的平均分,最终设置光标 位置到平均分处;3.2 设计思路
8、ASCII 码转化为二进制数寸入长度为 9 的字符串中,此 通过记录键盘,将 部分使用用循环结构;如输入的两位数的首位,即十位,非 0 或非 1,就提示错误并要求重复输入,如输入的个位数非 输入;09 中的数,就提示错误并要求重复用冒泡法重排 9 个数,使得第 1 和第 9 个数分别为最大数和最小数,并在屏幕中依次显示出来;然后用循环语句求出 9 个数中中间的 7 个数的和,即总得分,如总得分为 70 分,就直接输出平均分:10.00 分;如小于 70 分就将总得分除以得到的商作为平均分的个位数,输出一个小数点,将余数乘以 10 再除以 7,如此循环 3 次,后两次不输出小数点,得到精确到小数
9、点后两位的平均的分数,再将平均分输出;最终转变光标位置为平均得分处;3.3 程序设计框图名师归纳总结 - - - - - - -第 5 页,共 12 页精选学习资料 - - - - - - - - - 开头输入 9 个分数按大小重排分数求中间 7 个数的和总分 =70. YES NO 平均分 =总分 /7 平均分 =10.00 输出平均分转变光标位置终止名师归纳总结 - - - - - - -第 6 页,共 12 页精选学习资料 - - - - - - - - - 4. 代码实现DATAS SEGMENT RESULT DB 10 DUP. STRING1 DBPlease input int
10、eger0-10 NUMBER DB 31H,: ,$ STRING2 DB 0AH,The ranged scores are:,$ STRING3 DBAfter removing the highest and lowest score, the average score is: ,$ ERROR DB out of range,0AH,0DH, $ ERROR1 DB is not an integer,0AH,0DH, $ ERROR2 DB is not an number,0AH,0DH, $ DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码STACKS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年汇编语言课程设计方案报告 2022 汇编语言 课程设计 方案 报告
限制150内