欢迎访问我的网站:omegaxyz.com
计算器实现简单的加减乘除运算(小于65536的正数)
①从键盘输入算数的等式
②不接受复合算数如3+5*7
③按‘=’号输出结果
④按‘C’号作为CLEAR清零
程序分为输入模块,判断模块,计算模块,输出模块。
其他:增加了一些特性
①能够得出两个正数相减得到的负数
②能够计算除法中的余数
③比较美观
代码过长由于增加了一些特性

注意 C清除,不要按回车键,按等于号自动出结果

DATA SEGMENT
divisors DW 10000, 1000, 100, 10, 1
results DB 0,0,0,0,0,"$" ;存放五位数ASCII码
data endsSTACK SEGMENT
STACK ENDSCODE SEGMENT
ASSUME CS:CODE
MAIN PROC FAR
MOV AX,DATA
MOV DS,AXNOW:
MOV AX,0
CALL INPUTPUSH BX
;------------------------
CMP AL,'+'
JZ PLUS
CMP AL,'-'
JZ MINUS
CMP AL,'*'
JZ BY
CMP AL,'/'
JZ DIVDPLUS:
CALL INPUT
POP AX
ADD AX,BX
JMP NEXTMINUS:
CALL INPUT
POP AX
CMP AX,BX
JL LESS
SUB AX,BX
JMP NEXT
LESS:
SUB AX,BX
NEG AX
PUSH AX
MOV DL,'-'
MOV AH,02H
INT 21H
POP AX
JMP NEXTBY:
CALL INPUT
POP AX
MUL BX
JMP NEXTDIVD:
CALL INPUT
POP AX
CMP AX,BX
JL LESS2
DIV BX
JMP NEXT
LESS2:
PUSH AX
MOV DL,30H
MOV AH,02H
INT 21H
MOV DL,'~'
MOV AH,02H
INT 21H
POP AX
JMP NEXT
;---------------------------
NEXT:CALL OUTPUT
JMP NOW
MOV AH,4CH
INT 21H
RET
MAIN ENDP
;---------------------
INPUT PROC NEAR
MOV BX,0
NUM:
MOV AH,1
INT 21H
CMP AL,'C'
JZ CLEAR
CMP AL,'+'
JZ EXIT
CMP AL,'-'
JZ EXIT
CMP AL,'*'
JZ EXIT
CMP AL,'/'
JZ EXITSUB AL,30H
JL EXIT
CMP AL,9
JG EXIT
CBW
XCHG AX,BX
MOV CX,10
MUL CX
XCHG AX,BX
ADD BX,AX
JMP NUMCLEAR:
MOV DL,0DH
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
MOV AX,0
MOV BX,0
JMP NUMEXIT:RET
INPUT ENDP
;----------------------
OUTPUT PROC NEAR
mov si, offset divisors
mov di, offset results
mov cx,5
CAL:
mov dx,0
div word ptr [si]
add al,30H
mov byte ptr [di],al
inc di
add si,2
mov ax,dx
LOOP CAL
mov cx,4
mov di, offset results
NZ:
cmp byte ptr [di],'0'
jne print
inc di
loop NZ
print:
mov dx,di
MOV AH,9
INT 21H
RET
OUTPUT ENDP
;---------------------
CODE ENDS
END MAIN

汇编语言实现简单的计算器相关推荐

  1. android实现计算器功能吗,利用Android实现一个简单的计算器功能

    利用Android实现一个简单的计算器功能 发布时间:2020-11-20 16:25:01 来源:亿速云 阅读:90 作者:Leah 今天就跟大家聊聊有关利用Android实现一个简单的计算器功能, ...

  2. python123程序设计题说句心里话_用c++写一个简单的计算器程序

    // 050305.cpp : 定义控制台应用程序的入口点. // // 050304.cpp : 定义控制台应用程序的入口点. // //四则运算 #include "stdafx.h&q ...

  3. 计算器的程序代码java_java 简单的计算器程序实例代码

    java 简单的计算器程序 实现实例: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class c ...

  4. linux qt小型计算器,Qt实现一个简单的计算器

    Qt实现一个简单的计算器 作者:hackett 微信公众号:加班猿 一.UI界面版 运行效果:输入num1和num2选择+-*/点击计算即可 UI界面设计: 3个lineEdit(lineEditNu ...

  5. vue设置一个简单的计算器

    vue设置一个简单的计算器 <div id="app"><input type="text" v-model="n1"&g ...

  6. 【练习题】构造方法 编写Java程序,模拟简单的计算器。

    package day09; /*1.[练习题]构造方法 编写Java程序,模拟简单的计算器. 定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为私有.编写构造方法,赋予n1和n2初 ...

  7. java 简单的计算器程序,Java 简易计算器程序

    最近开始学习java,参考教科书写了一个简单的计算器程序,贴上来,以便有用的时候可以参考. 呵呵,哈哈!!! import java.awt.Container; import java.awt.Fl ...

  8. Windows10 手机应用程序开发 - 3. 做一个简单的计算器界面

    2019独角兽企业重金招聘Python工程师标准>>> 目标:完成一个简单的计算器的界面,暂时不做点击处理,主要联系UI布局. 步骤: 1.创建一个空的windows phone 项 ...

  9. 正则表达式应用:实现一个简单的计算器

    实现一个简单的计算器,代码如下: 下面的函数用来检验数学表达式的合规性,当然此处只实现两个检验:(1)括号应该闭合 (2)不能出现字母 def check_expression(str):check_ ...

  10. WPF框架教程 | 从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器

    之前时间一直在使用Caliburn.Micro这种应用了MVVM模式的WPF框架做开发,是时候总结一下了. Caliburn.Micro(https://blog.csdn.net/lzuacm/ar ...

最新文章

  1. java url路径包含中文_谈谈 Java 类加载机制
  2. PHP关键字'var'有什么作用?
  3. crt0.S(_main)代码分析
  4. java环境变量path好长_java环境变量设置
  5. 最近ゲームにはまってる。
  6. kafka 发布-订阅模式_使用Apache Kafka作为消息系统的发布-订阅通信中的微服务,并通过集成测试进行了验证...
  7. 人工智能和机器学习的前世今生
  8. UIActionSheet的使用
  9. android 70 使用ListView把数据显示至屏幕
  10. matlab车牌识别图像调整程序,matlab完整车牌识别程序,包括报告及图像
  11. 常用的控件样式风格设置(qss)——QtWidgets
  12. aspen稳态导出动态_Aspen Dynamics在控制中的应用
  13. hc05模块android代码,Arduino使用HC05蓝牙模块与手机连接
  14. C语言——逻辑运算符
  15. 双绞线的制作,T568A线序,T568B线序
  16. VR全景视频、图片播放器
  17. 最小生成树(Minimum Spanning Tree)的原理及实现(Java)
  18. flutter微信登录与支付(二)
  19. 【硬核】肝了一个月,Cisco网络工程师知识点总结
  20. wsappx导致系统崩溃

热门文章

  1. 18. Make interfaces esay to use correctly and hard to use incorrectly
  2. (day 13 - 双指针or递归)剑指 Offer 24. 反转链表
  3. Spring IOC中bean标签和管理对象细节
  4. mybatis连接池
  5. java script应用领域_JavaScript的应用
  6. 24. Django部署:项目部署
  7. Geoserver:跨域处理
  8. Javascript:基础语法
  9. fragment定义Android,Android-Jetpack笔记-Navigation之Fragment支持复用
  10. opencv_找cv::Mat中的最大值和最小值