教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高等教育 >

汇编语言的简易计算机设计(2)

来源:网络收集 时间:2026-02-23
导读: 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,

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字,全部文档内容请下载后查看。喜欢就下载吧 ……

汇编语言的简易计算机设计(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/124327.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)