汇编8086虚拟机编程-简易加减乘除计算器

本文介绍了如何使用8086汇编语言编程,设计一个虚拟机实现简单的加减乘除计算器。计算器能处理2个4位有符号整数的运算,错误输入和溢出情况均有相应提示。内容包括数据段定义、输入保存、运算过程及结果显示。
摘要由CSDN通过智能技术生成

题目要求

设计一个计算器,完成2个小于等于4位的十进制有符号整数(-9999~9999)的“+、-、、/”运算。屏幕显示“please enter number1”,等待接受数字并回显,回车表明数字输入结束;换行显示”please enter operator +、-、、/“,如果输入正确的运算符则输出‘’please enter number2“。在输入数字并回车后以十进制的方式显示运算结果。循环上述过程。
如果数字或运算符输入错误,给出提示(自行设计提示语)并再次输入。如果运算结果超出-9999~9999的范围,提示发生溢出,并返回头重新输入。

数据段定义

   STRP DB 01H,02H,03H,04H,05H,0DH,0AH,'$'             ;一条花边的ASCII码                 
   STR1 DB 'please enter number1:',0DH,0AH,'$'             ;四条提示语句
   STR2 DB 'please enter operator+,-,*,/:',0DH,0AH,'$'
   STR3 DB 'please enter number2:',0DH,0AH,'$'
   STR4 DB 'error,please enter again:',0DH,0AH,'$'
   STR5 DB 'result=:',0DH,0AH,'$'
   SR1 DW 0H       ;存放第一个输入的数
   SR2 DW 0H       ;存放运算符号的标志数 个人定义+为1,-为2,*为3,/为4
   SR3 DW 0H       ;存放第二个输入的数
   SR4 DW 0H       ;存放运算结果的16进制数
   FLA1 DW 1H     ;存放第一个数的正负符号
   FLA2 DW 1H     ;存放第二个数的正负符号
   RES DB 4 DUP('*')       ;存放正序的结果ASCII码,多余位为’*‘

start部分

START:                 ;程序开始执行的第一条指令的标号,标号名可变
   MOV AX,STACK1        ;堆栈段初始化,可以改变段名
   MOV SS,AX
;   MOV SP,TOP         ;供参考
   MOV SP,100		   ;根据自己设置的深度填写
   MOV AX,DATA1         ;数据段初始化,可以改变段名
   MOV DS,AX		   ;如果需要定义扩展段,请仿照上述语法添加
	

   MOV BX,0          ;清零
   MOV AX,0
   MOV CX,0
   MOV DX,0
   MOV SR1,AX
   MOV SR2,BX
   MOV SR3,AX
   MOV SR4,AX
   MOV RES,'
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值