汇编语言的简易计算机设计(2)
CMP AL,2DH ; '-' JZ MARK
CMP AL,3DH ; '=' JE EQUAL
CMP AL,'C' ;'C' 清屏 JE CLS SUB AL,30H
CMP AL,0 ;非数字和运算符则报错 JL ERROR CMP AL,9 JG ERROR JMP ARITH
ERROR: ;显示输入错误 LEA DX,WRONG MOV AH,9 INT 21H
JMP STARTA CLS: MOV AX,03H
INT 10H ARITH:
CMP C1,0 JE TTOM
MANA: ;数值的补码转换 MOV C0,AX ADD C1,1
MOV AX,BX ;AX->BX MOV CX,10 MUL ADD MOV JMP TTOM:
MOV JMP MARK:
CMP JE MOV ADD MOV MOV MOV ADD JMP GGON:
MOV ADD JMP EQUAL: CMP JE MOV ADD MOV JMP LLOP:
MOV JMP ENDW:
RET INPUT ENDP
CX
AX,C0 ;AX=BX*10+AX
BX,AX ;AX->BX,下次转换使用 STARTW BX,0 MANA BX,-1 ;BX=-1表示上一次输入的是数字 GGON
NUM1[SI],BX ;将操作符和运算符都放入NUM1 SI,2
NUM1[SI],AX BX,-1 C1,0 SI,2 STARTW NUM1[SI],AX SI,2 STARTW
;输入是等号时,调到主程序执行运算 BX,-1 LLOP
NUM1[SI],BX SI,2
NUM1[SI],AX ENDW NUM1[SI],AX ENDW
3.3子模块
3.3.1子模块流程图
完成对数据的进一步加工处理,转换格式并得出结果。首先根据输入调用混合了对应的“+”、“-”、“*”、“/”四大函数的模块,这是本程序的核心模块,其他部分的一些小模块都是为这几大模块服务的。子模块流程图如图3-2:
图3-2 子模块流程图
3.3.2子模块程序代码
程序代码如下:
;------ 计算混合运算的子程序(不含括号的)------------------ CALC PROC NEAR MOV AX,NUM1 MOV NUM4,AX MOV NUM2,0 MOV DI,2 MOV CX,0 MOV SI,2 INT1:
MOV BX,NUM1[SI] CMP BL,2AH ;'*' JE MULL
CMP BL,2FH ;'/' JE DIVV
CMP BL,3DH ;'=' JE JMP_CB
CMP BL,29H ;')' JE JMP_CB
CMP BL,2BH ;'+' JE POTT
CMP BL,2DH ;'-' JE INT2:
MOV ADD ADD MOV MOV ADD ADD JMP POTT:
SUB MOV ADD JMP MULL:
ADD MOV MUL ADD JMP JMP_CB: DIVV:
ADD MOV XOR DIV PUSH MOV MOV XS: MOV MOV MUL DIV MOV POTT NUM4[DI],BX DI,2 SI,2
AX,NUM1[SI] NUM4[DI],AX DI,2 SI,2 INT1 DI,2
NUM4[DI],AX ;运算结果存放在NUM4 DI,2 INT2 SI,2
BX,NUM1[SI]
BX ;AX存放计算结果 SI,2 INT1
JMP CHUBU SI,2 ;是除法则直接运算 BX,NUM1[SI] DX,DX BX AX CX,DI DI,0
AX,DX ;得到小数部分 _NUM,10 _NUM BX
NUM2[DI],AX
CMP DI,4 JL XS POP AX MOV DI,CX ADD SI,2 JMP INT1 ADDD:
ADD DI,2
MOV BX,NUM4[DI] ADD AX,BX ADD DI,2 JMP INT3 SUBB:
ADD DI,2
MOV BX,NUM4[DI] SUB AX,BX ADD DI,2 JMP INT3
CHUBU: MOV NUM4[DI],BX SUB DI,2
MOV NUM4[DI],AX MOV AX,NUM4 MOV DI,2 INT3:
MOV BX,NUM4[DI] CMP BX,2BH ;'+' JE ADDD
CMP BX,2DH ;'-' JE SUBB
MOV RESULT,AX RET CALC ENDP
;-----输出最终结果的子程序--------------- OUTPUT PROC NEAR MOV SI,0
MOV AX,RESULT BEGAIN: PUSH AX CMP AX,0 JL FS_ JMP ZS
FS_: MOV DL,2DH MOV AH,02H INT 21H
NEG AX ZS: MOV BX,10
XOR CX,CX ;CX =0 Q0: XOR DX,DX ;DX=0
DIV BX ;AX/10 --->商放入ax,余数放入dx OR DX,0E30H PUSH DX INC CX CMP AX,0 JNZ Q0 Q1: POP AX DEC CX
INT 10H ;输出字符 CMP CX,0 JNZ Q1 ;输出小数程序
OT: MOV DL,'.' MOV AH,02H INT 21H MOV DI,0
OT1: MOV DX,NUM2[DI] ADD DI,2 ADD DX,30H MOV AH,02H INT 21H CMP DI,6 JL OT1
CALL _ENTER JMP STAR …… 此处隐藏:1771字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]一年级家长课程教案
- [高等教育]封丘县人民医院深入推进纠正医药购销领
- [高等教育]2017年6月大学英语四级真题试卷及答案(
- [高等教育]2017年北京第二外国语学院文学院824中
- [高等教育]7 高中历史第7单元1861年俄国农奴制改
- [高等教育]【K12学习】4、实际测量-苏教版六年级
- [高等教育]药具培训试卷题库及部分参考答案
- [高等教育]本土电子元器件目录分销商如何赢得生意
- [高等教育]七年级岭南版美术教案
- [高等教育]书作文之书法活动通讯稿
- [高等教育]Endnote X 软件使用入门和用法总结(LS)
- [高等教育]嵌入式系统的现状及发展状况
- [高等教育]2012抗菌药物专项整治活动方案解读
- [高等教育]人教版新课本一年级数学下册期末试卷
- [高等教育]爱课程民法学观后感
- [高等教育]930机组使用说明书1
- [高等教育]煤气设备设施点检标准
- [高等教育]常见室内观叶植物图解
- [高等教育]312党员群众路线心得体会
- [高等教育]小学信息(苗版)第一册全册教案
- 在市---局2010党建大会上的讲话
- 《科哲》提纲及补充阅读材料(2010.7)
- 苏州高博软件技术职业学院论文开题报告
- 兼职导游管理的困境及对策探讨
- 基于通用设计理念的现代厨房产品语义研
- 康乐一中2010年至2011年度鼓号队、花束
- 第10章_数据收集整理与描述_期末复习课
- 2008年黑龙江林甸商贸购物中心营销策划
- 水硬度的测定实验报告
- 五分钟教你拍摄夜景光绘照
- 2014年临床妇产科三基三严试题及答案
- 0第二课 纾解压力第一站了解压力
- 解析建筑工程电气设备安装施工技术要点
- 地方性应用型本科高校“双师型”师资队
- 高考语文专题复习课件:小说阅读指导
- 装饰工程投标书2
- 大学生就业难问题探讨及对策
- English and Its History
- 青岛市城市房屋修缮工程质量监督管理办
- 初中英语形容词和副词的用法和练习题




