汇编语言实现简单的计算器
来源:互联网 发布:古鹰 知乎 编辑:程序博客网 时间:2024/06/08 15:13
欢迎访问我的网站:omegaxyz.com
计算器实现简单的加减乘除运算(小于65536的正数)
①从键盘输入算数的等式
②不接受复合算数如3+5*7
③按‘=’号输出结果
④按‘C’号作为CLEAR清零
程序分为输入模块,判断模块,计算模块,输出模块。
其他:增加了一些特性
①能够得出两个正数相减得到的负数
②能够计算除法中的余数
③比较美观
代码过长由于增加了一些特性
DATA SEGMENTdivisors DW 10000, 1000, 100, 10, 1results DB 0,0,0,0,0,"$" ;存放五位数ASCII码data endsCODE SEGMENTASSUME CS:CODEMAIN PROC FARMOV AX,DATAMOV DS,AXLEA DX,MESSMOV AH,09HINT 21HMOV DL,0DHMOV AH,2INT 21HMOV DL,0AHMOV AH,2INT 21HNOW:MOV AX,0CALL INPUTPUSH BX;------------------------CMP AL,'+'JZ PLUSCMP AL,'-'JZ MINUSCMP AL,'*'JZ BYCMP AL,'/'JZ DIVDPLUS:CALL INPUTPOP AXADD AX,BXJMP NEXTMINUS:CALL INPUTPOP AXCMP AX,BXJL LESSSUB AX,BXJMP NEXTLESS:SUB AX,BXNEG AXPUSH AXMOV DL,'-'MOV AH,02HINT 21HPOP AXJMP NEXTBY:CALL INPUTPOP AXMUL BXJMP NEXTDIVD:CALL INPUTPOP AXCMP AX,BXJL LESS2DIV BXJMP NEXTLESS2:PUSH AXMOV DL,30HMOV AH,02HINT 21HMOV DL,'~'MOV AH,02HINT 21HPOP AXJMP NEXT;---------------------------NEXT:CALL OUTPUTJMP NOWMOV AH,4CHINT 21HRETMAIN ENDP;---------------------INPUT PROC NEARMOV BX,0NUM:MOV AH,1INT 21HCMP AL,'C'JZ CLEARCMP AL,'+'JZ EXITCMP AL,'-'JZ EXITCMP AL,'*'JZ EXITCMP AL,'/'JZ EXITSUB AL,30HJL EXITCMP AL,9JG EXITCBWXCHG AX,BXMOV CX,10MUL CXXCHG AX,BXADD BX,AXJMP NUMCLEAR:MOV DL,0DHMOV AH,2INT 21HMOV DL,0AHMOV AH,2INT 21HMOV AX,0MOV BX,0JMP NUMEXIT:RETINPUT ENDP;----------------------OUTPUT PROC NEARmov si, offset divisorsmov di, offset results mov cx,5 CAL:mov dx,0 div word ptr [si]add al,30Hmov byte ptr [di],al inc di add si,2 mov ax,dx LOOP CALmov cx,4 mov di, offset results NZ:cmp byte ptr [di],'0' jne printinc di loop NZprint:mov dx,di MOV AH,9INT 21HRETOUTPUT ENDP;---------------------CODE ENDSEND MAIN
阅读全文
0 0
- 汇编语言实现简单的计算器
- 简单的计算器实现
- 简单计算器的实现
- 简单计算器的实现
- 简单计算器的实现
- 计算器的简单实现
- 简单计算器的实现
- 简单计算器的实现
- 简单计算器的实现
- 简单的计算器的实现
- javascript实现的简单计算器
- 简单计算器的java实现
- java实现简单的计算器
- Java实现的简单计算器
- 简单计算器的Java实现
- 《java---简单计算器的实现》
- 栈实现的简单计算器
- 简单计算器的C++实现
- MFC延时功能GetTickCount的实现
- vue拖拽练习
- Android6.0蓝牙搜索设备
- 结构体初始化
- 03,Lua 词法规范
- 汇编语言实现简单的计算器
- 软件工程(C编码实践篇)学习总结
- LinkedHashMap图解--转载
- Spark2.1.1<IDEA使用SBT或者Maven构建spark程序>
- 20170615
- Linux C 进程间的信号通信
- 生成器
- Pycharm的激活
- [机器学习入门] 李宏毅机器学习笔记-14 (Unsupervised Learning: Linear Dimension Reduction;无监督学习:线性降维)