版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机原理与接口技术 课程设计 院 系:电气与自动化工程系 专 业:通信工程 年级班级: 学 号: 姓 名: 指导教师: 设计日期: 2010-12-28 、 课程设计目的 每个同学在 1-2 周时间内,用汇编语言独立完成一个程序题,以达到熟练运用汇 编语言编程实现有比较完整功能的程序的目的。 二、课程设计要求 从键盘上输入数字参与运算, 并在屏幕上显示结果, 至少实现加法减法运算。 三、课题分析 该程序设计的关键是要根据四则运算中( )、*、/ 、+、- 、= 的优先级设置 符号的权值,其中(、 *、/ 、+、-、)、= 的权值分别设置为 5、4、4、3、3、1、 0,然后根据权值的大小进行运
2、算。程序使用数字标志 SIGN1括号标志SIGN2 分别来判断数字是否输入完毕和括号是否配对, 另外程序定义两个数据存储区域 NUMB口 MARK其中NUM用来保存输入的或运算的数值,MARK用来保存输入的 符号及其对应的权值。程序不断判断输入的符号是否是左括号 ( ,当遇到左 括号是在存储区MAR保存其符号,紧跟着将(的权值改为2并保存之,这 是为了使程序运算括号内的表达式,当遇到右括号) 时括号内运算将结束。 需要注意的是程序执行完括号内表达式的运算及乘除运算后将在存储区MAR中 覆盖符号(、)、*、/ 及紧跟着的权值,使得程序在运算整个四则运算表达式时 当括号内表达式的运算及乘除运算结束
3、后存储区 MAR中只有 +、-运算符 及紧跟着的权值,然后按照 +、 - 运算符的左右顺序从左到右进行 +、 - 运 算,当最后遇到等号 = 时输出表达式的数值,然后再根据提示判断是否继 续执行下一个四则运算表达式。 - 1 - 四、流程图 -2 - -3 - MOVCH,H JMP OTH7 五、程序源代码 DATASSEGMENT ENDM STR1 DB CODESSEGMENT 0AH,0DH,* ASSUMECS:CODES,DS:DATAS *$ START: STR2 DB0AH,0DH, * CALL CLEAR *$ MOVAX,DATAS STR3 DB0AH,0DH, *
4、 MOVDS,AX Welcome you !*$ LEADI,NUMB STR4 DB0AH,0DH, * This is LEASI,MARK programe of sizeyunsuan *$ DISP STR1 STR5 DB0AH,0DH, * DISP STR2 Rang(-32768 to 32767) *$ DISP STR3 STR6 DB0AH,0DH, * JikeB082 DISP STR4 Hanyou 200807014225 *$ DISP STR5 STR7 DB0AH,0DH, * DISP STR6 *$ DISP STR7 STR8 DB DISP ST
5、R8 0AH,0DH,* CALL CR *$ MOVAX,0 MESG DB0AH,0DH, Do you want to MOVBX,0 continue? (y/n) $ MOVCX,0 SIGN1 DW0; 判断数字是否 MOVDX,0 输入完毕 START1: SIGN2 DW0; 判断括号是否 CALL CR 配对 INPUT: NUMB DW20 DUP(0) ; 保存输入的数 MOVAH,1 值 INT 21H MARK DB M ; 保存输入的运 CMPAL, = 算符 JE PD ; 是等号,进 DB10 DUP(0) 一步判断输入括号是否配对 ERROR DB YOUR
6、INPUT IS WRONG$ CMPAL,28H DATASENDS JB INPUT DISP MACRO STR CMPAL,39H LEADX,STR JA INPUT MOVAH,9 CMPAL,2FH ; 判断是数 INT 21H 字还是符号 ENDM JBE JUD ; 是符号转 CHOICE MACRO ASC,HAO,H; 宏定义,给运 入响应操作 算符赋权值 INC WORDPTRSIGN1 ; 将数字标志 CMPAL,ASC 位加 1 JNE OTH 将 ASCII 码 转16进制 MOVAH,0 XCHGAX,DIDECSI MULBXMOVCL,SI MOVBX,10
7、 XCHGAX,DI ADDDI,AX CALL MATCH 么运算符并进行相应的计算 JMP AGAIN ; 判断是什 JMP INPUT PD: CMPWORD PTR SIGN2,0 ; 判断配对标 SAVE: 志位 CMPCH,0 ; 判断是否 JE JUD 曰牡口. 是等号 JMP BC JE OUTPUT JUD:CMPWORDPTR SIGN1,0 ;判断数值指 CMPCH,1 针是否已经下移一位 JE INPUT ; “ ) ”不保 JE FUH 存,输入下一个数 ADDDI,2 INC SI MOVWORDPTR SIGN1,0 ; 将数字标志 MOVSI,AL ; 保存符号
8、 位复 0 INC SI FUH:CALL ADVANCE ; 设定优先 CMPCH,5 ; 判断是否 级 是左括号 CMPCH,5 ; 判断输入 JNE GO_ON 的符号是否是左括号 MOVCH,2 ; 改变 ( 的权 JNE PY ; 不是则判 值 断输入的是否是右括号 GO_ON: INC WORD PTR SIGN2 ; 是左括号, MOVSI,CH ; 紧跟着保 括号标志位加 1 存符号的权值 PY: JMP INPUT CMPCH,1 ; 判断输入 的是否是右括号 BC: LEADX,ERROR JNE AGAIN MOVAH,9 DECWORD PTR SIGN2 ; 是右括号
9、, INT 21H 括号标志位减 1 JMP J_SHU AGAIN: MATCHPROCNEAR ; 子程序,进 CMPBYTEPTRSI, M ;判断运算符 行相应的运算 存储区是否为空如 23*56(8*19) PUSHAX /6 + 67 - 8= 1322 XORAX,AX JE SAVE XORBX,BX CMPCH,SI ;SI 的内 CMPCL,2AH ; 乘法运算 容为前一个符号或其权值 JNE NEXT1 JA SAVE SUBDI,2 CMPBYTE PTRSI, ( XCHGBX,DI JNE YIDO SUBDI,2 DECSI XCHGAX,DI JMP INPUT
10、 IMUL BX YIDO: MOVDI,AX - 5 - ADDDI,2 JMP FINISH NEXT1:CMPCL,2FH ; 除法运算 JNE NEXT2 SUBDI,2 XCHGBX,DI SUBDI,2 XCHGAX,DI CWD IDIV BX MOVDI,AX ADDDI,2 JMP FINISH NEXT2:CMPCL,2BH ; 加法运算 JNE NEXT3 SUBDI,2 XCHGBX,DI SUBDI,2 ADDDI,BX ADDDI,2 JMP FINISH NEXT3:CMPCL,2DH ; 减法运算 JNE FINISH SUBDI,2 XCHGBX,DI SUB
11、DI,2 SUBDI,BX ADDDI,2 FINISH: POPAX RET MATCH ENDP ; 清屏 ; 回车换行 ; 输出运算 ADVANCE PROC CHOICE 28H,1,5 ;( OTH1:CHOICE 29H,2,1 ;) OTH2:CHOICE 2AH,3,4 ;* OTH3:CHOICE 2FH,4,4 ;/ OTH4:CHOICE 2BH,5,3 ;+ OTH5:CHOICE 2DH,6,3 ;- OTH6:CHOICE 3DH,7,0 ;= OTH7:RET ADVANCE ENDP CLEAR PROC NEAR PUSHAX PUSHBX PUSHCX PU
12、SHDX MOVAX,0600H MOVBH,0FH MOVCX,0 MOVDX,184FH INT 10H POPAX POPBX POPCX POPDX RET CLEAR ENDP CR PROC NEAR PUSHAX PUSHDX MOVAH,2 MOVDL,0DH INT 21H MOVAH,2 MOVDL,0AH INT 21H POPDX POPAX RET CR ENDP OUTPUT: 结果 SUBDI,2 CMPWORD PTRDI,0 JGE W1 NEGWORD PTRDI MOVDL, - MOVAH,2 INT 21H W1: MOVBX,10000 MOVCX,
13、5 MOVSI,0 W2: MOVAX,DI -7 - CWD DIV BX MOVDI,DX CMPAL,0 JNE W3 CMPSI,0 JNE W3 CMPCX,1 JE W3 JMP W4 W3: MODL,AL ADDDL,30H M0AH,2 INT 21H MO01 W4: MOAX,BX MODX,0 MOBX,10 DIV BX MOBX,AX LOOP W2 CALL CR DISP MESG MOAH,1 INT 21H CMPAL, n JE J_SHU CMPAL, N JE J_SHU MOVWORD PTRDI+2,0 CALL CR LEADI,NUMB LEA
14、SI,MARK JMP START1 J_SHU: MOAH,4CH INT 21H CODESENDS ENDSTART 六、结果显示 Uelcomepou ? This is prog|i?aniE nf s nlseiuMisuan Rang-3276S to 22767? JikeB082 Hdnsrou 200807914225 4 you uan七 to con inue? l?87=2i987 o you wan七 bo continue? 35G-/6*67-8-1322 o you wari七 七o cont: inue? 七、感想、收获及体会 学习汇编语言:大一学习的是 C
15、 语言,因此,在学汇编语言之初,面对格 式之类的感觉很不适应。 C 语言用的是一个又一个变量,而汇编语言则是利用一 个又一个寄存器来实现。 而写代码的时候, 经常会因为一些符号, 或者字长的失 误,完全是无心之失而导致程序无法执行。 而回过来找错误的时候, 又往往忽略 了这些细节而找不到错误的根源。 学习汇编是个艰辛的过程,从C语言到汇编的 不适,到牢记大量的指令,并熟练应用,都要花费很多时间适应。对有些指令的 源操作数和目的操作数, 以及操作结果的存放位置都要熟记于心。 否则,你将很 难应用这些指令, 学习汇编的一个重要能力就是能够熟练调试所写程序, 当某个 程序不能执行时, 而又发现不了错误, 这就要对程序进行逐步
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030全球与中国混凝土摊铺机械发展现状及未来供需销售趋势研究报告
- 2025-2030中国冻干榴莲市场投资效益与未来销售前景规划研究报告
- 2025-2030支架地上泳池市场经营风险及未来需求状况监测研究报告
- 物业管理费用核算实务培训
- 2026年广东省清远市单招职业倾向性考试题库附答案详解(模拟题)
- 2026年巴中职业技术学院单招职业技能测试题库含答案详解(b卷)
- 2026年广西工商职业技术学院单招职业倾向性考试题库附参考答案详解(能力提升)
- 2026年广东省揭阳市单招职业倾向性测试题库带答案详解(考试直接用)
- 2026年广东理工职业学院单招综合素质考试题库带答案详解(新)
- 2026年广东交通职业技术学院单招综合素质考试题库附答案详解(预热题)
- 2025高中化学教研组工作计划
- 《篮球原地运球 原地单手肩上投篮》教案(三篇)
- 茶评员技师(二级)职业鉴定理论考试题及答案
- 酒店管理《旅游接待业》课程教学大纲
- 四川省高职单招计算机类《Windows》历年考试真题试题库(含答案)
- 2024年贵州省中考英语试题卷(其他市、州卷)及答案详解
- GB/T 19822-2024铝及铝合金硬质阳极氧化膜规范
- FZ∕T 93053-2019 转杯纺纱机 转杯
- 验证方案与验证报告
- JGJ79-2012 建筑地基处理技术规范
- 移植血管内瘘的护理
评论
0/150
提交评论