汇编语言实现简单的计算器
欢迎访问我的网站: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
汇编语言实现简单的计算器相关推荐
- android实现计算器功能吗,利用Android实现一个简单的计算器功能
利用Android实现一个简单的计算器功能 发布时间:2020-11-20 16:25:01 来源:亿速云 阅读:90 作者:Leah 今天就跟大家聊聊有关利用Android实现一个简单的计算器功能, ...
- python123程序设计题说句心里话_用c++写一个简单的计算器程序
// 050305.cpp : 定义控制台应用程序的入口点. // // 050304.cpp : 定义控制台应用程序的入口点. // //四则运算 #include "stdafx.h&q ...
- 计算器的程序代码java_java 简单的计算器程序实例代码
java 简单的计算器程序 实现实例: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class c ...
- linux qt小型计算器,Qt实现一个简单的计算器
Qt实现一个简单的计算器 作者:hackett 微信公众号:加班猿 一.UI界面版 运行效果:输入num1和num2选择+-*/点击计算即可 UI界面设计: 3个lineEdit(lineEditNu ...
- vue设置一个简单的计算器
vue设置一个简单的计算器 <div id="app"><input type="text" v-model="n1"&g ...
- 【练习题】构造方法 编写Java程序,模拟简单的计算器。
package day09; /*1.[练习题]构造方法 编写Java程序,模拟简单的计算器. 定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为私有.编写构造方法,赋予n1和n2初 ...
- java 简单的计算器程序,Java 简易计算器程序
最近开始学习java,参考教科书写了一个简单的计算器程序,贴上来,以便有用的时候可以参考. 呵呵,哈哈!!! import java.awt.Container; import java.awt.Fl ...
- Windows10 手机应用程序开发 - 3. 做一个简单的计算器界面
2019独角兽企业重金招聘Python工程师标准>>> 目标:完成一个简单的计算器的界面,暂时不做点击处理,主要联系UI布局. 步骤: 1.创建一个空的windows phone 项 ...
- 正则表达式应用:实现一个简单的计算器
实现一个简单的计算器,代码如下: 下面的函数用来检验数学表达式的合规性,当然此处只实现两个检验:(1)括号应该闭合 (2)不能出现字母 def check_expression(str):check_ ...
- WPF框架教程 | 从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器
之前时间一直在使用Caliburn.Micro这种应用了MVVM模式的WPF框架做开发,是时候总结一下了. Caliburn.Micro(https://blog.csdn.net/lzuacm/ar ...
最新文章
- java url路径包含中文_谈谈 Java 类加载机制
- PHP关键字'var'有什么作用?
- crt0.S(_main)代码分析
- java环境变量path好长_java环境变量设置
- 最近ゲームにはまってる。
- kafka 发布-订阅模式_使用Apache Kafka作为消息系统的发布-订阅通信中的微服务,并通过集成测试进行了验证...
- 人工智能和机器学习的前世今生
- UIActionSheet的使用
- android 70 使用ListView把数据显示至屏幕
- matlab车牌识别图像调整程序,matlab完整车牌识别程序,包括报告及图像
- 常用的控件样式风格设置(qss)——QtWidgets
- aspen稳态导出动态_Aspen Dynamics在控制中的应用
- hc05模块android代码,Arduino使用HC05蓝牙模块与手机连接
- C语言——逻辑运算符
- 双绞线的制作,T568A线序,T568B线序
- VR全景视频、图片播放器
- 最小生成树(Minimum Spanning Tree)的原理及实现(Java)
- flutter微信登录与支付(二)
- 【硬核】肝了一个月,Cisco网络工程师知识点总结
- wsappx导致系统崩溃
热门文章
- 18. Make interfaces esay to use correctly and hard to use incorrectly
- (day 13 - 双指针or递归)剑指 Offer 24. 反转链表
- Spring IOC中bean标签和管理对象细节
- mybatis连接池
- java script应用领域_JavaScript的应用
- 24. Django部署:项目部署
- Geoserver:跨域处理
- Javascript:基础语法
- fragment定义Android,Android-Jetpack笔记-Navigation之Fragment支持复用
- opencv_找cv::Mat中的最大值和最小值