汇编表达式求值大作业
更新时间:2023-05-10 00:55:01 阅读量: 实用文档 文档下载
- 中缀表达式求值推荐度:
- 相关推荐
《汇编语言程序设计》
综合程序设计实验报告
题 目:班 级:
姓 名: 学 号: 20112820
完成日期: 2013-11-24
一、项目简介
题目完成了对简单的加减乘除四则表达式的求值,同时能判断各种运算级括号的优先级,进行正确的运算顺序。
二、小组成员具体分工
韩亚华:完成判断优先级方法设计,以及细节的处理。
姜力比:完成输入输出函数的设计,以及各运算函数。
三、需求分析与设计
要完成四则运算表达式求值必须解决以下问题
1.如何在汇编环境下输入并保存操作数
2.如何保存运算符和比较运算符的优先级
3.如何输出计算结果
4.负数和括号的细节问题
四、代码及分析
DSEG SEGMENT
STR1 DB 0AH,0DH, 'please input the expression:("N"jump out)$'
SIGN1 DW 0 ;判断数字是否输入完毕
SIGN2 DW 0 ;判断括号是否配对
;SIGN3 DW 0 ;
NUMB DW 20H DUP(0) ;保存输入的数值
MARK DB 'A' ;保存输入的运算符
DB 10H DUP(0) ;
ERROR DB 'YOUR INPUT ARE WRONG$'
DSEG ENDS
DISP MACRO M
LEA DX,M
MOV AH,9
INT 21H
ENDM
CHOICE MACRO ASC1,HAO1,HH ;宏定义,给运算符赋权值
CMP AL,ASC1 ;
JNE OTHER&HAO1 ;
MOV CH,HH ;
JMP OTHER7 ;
ENDM
CSEG SEGMENT
START:
ASSUME CS:CSEG,DS:DSEG
CALL CLEAR
MOV AX,DSEG ;
MOV DS,AX ;
LEA DI,NUMB ;
LEA SI,MARK ;
DISP STR1
CALL CR
;disp error
MOV AX,0
MOV DX,0
MOV BX,0
MOV CX,0
STA1 : CALL CR
INPUT:
MOV AH,01 ;
INT 21H ;
CMP AL,'N'
JE J_SHU
CMP AL,'=' ;
JE PD ;是等号,进一步判断输入括号是否配对
CMP AL,28H ;
JB INPUT ;
CMP AL,39H ;
JA INPUT ;
CMP AL,2FH ;判断是数字还是符号
JBE JUD ;是符号转入响应操作
INC WORD PTR SIGN1 ;将数字标志位加一
SUB AL,30H ;将asc码转16进制
MOV AH,0 ;
XCHG AX,[DI] ;
MOV BX,10 ;
MUL BX ;
XCHG AX,[DI] ;
ADD [DI],AX ;
JMP INPUT ;
PD:
CMP WORD PTR SIGN2,0 ;判断配对标志位
JE JUD ;
JMP BC ;
JUD:
CMP WORD PTR SIGN1,0 ;判断数值指针是否已经下移一位
JNE FUH ;
CMP AL,'-'
JNE FUH1
MOV DX,0
MOV [DI],DX
FUH:
ADD DI,2 ;
MOV WORD PTR SIGN1,0;
FUH1:
CALL ADVANCE ;判定优先级,
CMP CH,5 ;判断输入的是否是左括号
JNE PY ;不是则判断输入的是否是右括号
INC WORD PTR SIGN2 ;是左括号,括号标志位1
;MOV WORD PTR SIGN3,1;
PY:
CMP CH,1 ;判断输入的是否是右括号
JNE AGAIN ;
DEC WORD PTR SIGN2 ;是右括号,括号标志位减1
AGAIN:
CMP BYTE PTR[SI],'A';判断运算符存储区是否为空
JE SAVE ;
CMP CH,[SI] ;
JA SAVE ;
CMP BYTE PTR[SI-1],'('
JNE YIDO
SUB SI,2
JMP INPUT
YIDO:
DEC SI ;
MOV CL,[SI] ;
CALL MATCH ;判断是什么运算符并进行相应的计算
DEC SI ;
JMP AGAIN ;
Z_Z:
JMP INPUT
J_SHU0: JMP J_SHU ;
SAVE:
CMP CH,0 ;
JE OVER ;
CMP CH,1 ;
JE Z_Z ;“)”不保存,输入下一个数
INC SI ;
MOV [SI],AL ;
INC SI ;
CMP CH,5 ;
JNE GO_ON ;
MOV CH,2 ;改变(的权值
GO_ON:
MOV [SI],CH ;
JMP INPUT ;
BC:
LEA DX,ERROR ;
MOV AH,9 ;
INT 21H ;
JMP J_SHU ;
;OVER1:
;JMP OVER ;
MATCH PROC ;子程序,进行相应的运算
PUSH AX ;
XOR AX,AX
XOR BX,BX
CMP CL,2AH ;乘法运算
JNE NEXT1
SUB DI,2
XCHG BX,[DI]
SUB DI,2
XCHG AX,[DI]
IMUL BX
MOV [DI],AX
ADD DI,2
JMP FINISH
NEXT1:
CMP CL,2FH ;除法运算
JNE NEXT2
SUB DI,2
XCHG BX,[DI]
SUB DI,2
XCHG AX,[DI]
CWD
IDIV BX
MOV [DI],AX
ADD DI,2
JMP FINISH
NEXT2:
CMP CL,2BH ;加法运算
JNE NEXT3
SUB DI,2
XCHG BX,[DI]
SUB DI,2
ADD [DI],BX
ADD DI,2
JMP FINISH
NEXT3:
CMP CL,2DH ;减法运算
JNE FINISH
SUB DI,2
XCHG BX,[DI]
SUB DI,2
SUB [DI],BX
ADD DI,2
FINISH:
POP AX
RET
MATCH ENDP
ADVANCE PROC
CHOICE 28H,1,5 ;(
OTHER1: CHOICE 29H,2,1 ;)
OTHER2: CHOICE 2AH,3,4 ;*
OTHER3: CHOICE 2FH,4,4 ;/
OTHER4: CHOICE 2BH,5,3 ;+
OTHER5: CHOICE 2DH,6,3 ;-
OTHER6: CHOICE 3DH,7,0 ;=
OTHER7: RET
ADVANCE ENDP
;***清屏***
clear proc near
push ax
push bx
push cx
push dx
mov ah,06h
mov al,01h
mov ch,0
mov cl,0
mov bh,0fH
mov dh,18H
mov dl,4FH
int 10h
mov bh,0
mov dx,0
MOV AH,02H
; MOV DL,0
INT 10H
pop dx
pop cx
pop bx
pop ax
ret
clear endp
;****回车换行****
CR PROC
PUSH AX
PUSH DX
MOV ah,2
MOV dl,0dh
INT 21H
mov ah,2
MOV dl,0ah
INT 21H
POP DX
POP AX
RET
CR ENDP
OVER:
SUB DI,2
CMP WORD PTR[DI],0
JGE W1
NEG WORD PTR[DI]
MOV DL,'-'
MOV AH,2
INT 21H
W1:
MOV BX,10000
MOV CX,5
MOV SI,0
W2:
MOV AX,[DI]
MOV DX,0
DIV BX
MOV [DI],DX
CMP AL,0
JNE W3
CMP SI,0
JNE W3
CMP CX,1
JE W3
JMP W4
W3:
MOV DL,AL
ADD DL,30H
MOV AH,2
INT 21H
MOV SI,1
W4:
MOV AX,BX
MOV DX,0
MOV BX,10
DIV BX
MOV BX,AX
LOOP W2
;CALL CR
J_SHU1:
MOV WORD PTR[DI+2],0
CALL CR
LEA DI,NUMB ;
LEA SI,MARK
JMP STA1
J_SHU:
MOV AH,4CH
INT 21H
CSEG ENDS
END START
五、总结
在解决比较复杂的问题时一个人往往很难完成。这时就需要团队的合作,这其中明确的分工和及时的沟通交流是至关重要的。好的分工能提高团队的效率避免重复的工资,及时的交流能提前发现并解决问题,避免大家的偏离目标和出现重大问题。
正在阅读:
汇编表达式求值大作业05-10
信息资源管理对新闻工作的意义 - 图文04-17
2016-2021年低压高性能变频器行业深度分析及“十三五”发展规划指导报告01-06
住宅小区公用设施维修作业程序07-05
浙江省第五届初中生自然科学竞赛复赛试卷05-06
电力电子技术实验报告(西电自动化11级千博) - 图文03-10
治安志愿者活动工作计划06-08
我的理想作文800字(4篇)12-19
新版安全生产管理规章制度汇编(样例5)08-23
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 表达式
- 汇编
- 作业
- 青马社会实践报告
- 辽阳市农业和农村经济十二五发展规划
- 2013-09-23_国金证券_郑宏达,赵旭翔,张帅_互联网行业O2O产业研究(一)总论篇O2O,移动互联时代的商业革命
- 新会计准则对房地产企业税收筹划的影响分析
- 2018年6月大学生英语四级真题试卷及详细答案(精品)
- 基于单片机的步进电机控制系统设计(1)
- 初三物理教学工作总结
- 2010河北省公务员考试申论真题及答案
- 珠海市2010年上半年继续医学教育项目汇总表
- 做一个有魅力的教师
- 中职一年级《语文》期末试卷(A卷)
- 机械运动综合练习
- 小学生数学日记作文
- 集装箱正面吊运机负载传感液压系统分析与应用
- 多径瑞利衰落信道建模与智能天线算法研究
- 人力资源招聘与培训实训报告
- SM2椭圆曲线门限密码算法 - 密码学报201402
- 汕头市龙湖金园实验中学入学考试
- 司法考试行政法论述题出题点
- 张家界凤凰古城自助游功略手册(自助旅游必备)