(完整版)汇编语言实现四则运算_第1页
(完整版)汇编语言实现四则运算_第2页
(完整版)汇编语言实现四则运算_第3页
(完整版)汇编语言实现四则运算_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、DISPMACRO VARMOV AH,2MOV DL,VARINT 21HENDMDATAS SEGMENTDATA0 DB 'PLEASE INPUT A NUMBER(0-999):' ,'$'DATA1 DB 'over flow input again:','$'DATA2 DB 'PLEASE INPUT ANOTHER NUMBER(EXP:123)' ,'$' DATA3 DB 'PLEASE INPUT AN OPREATOR:' ,'$'DATA4

2、 DB 'THE OPERATOR IS WRONG,INPUT AGAIN:' ,'$'OPERDB ?FLAGDB 0FLAG1 DB 0DATADW 3 DUP(?)DATAS ENDSSTACKS SEGMENTDW 256 DUP(?)STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AXMOVDI,OFFSET DATA0;提示信息CALL DISPLMOVSI,0;SI作为数组下标CALL INPUTCALL NEWLINEMOVD

3、I,OFFSET DATA3;提示信息CALL DISPLAGAIN:MOVAH,1;1号功能输入四则运算符INT 21HCMPAL, '+'判断输入的是不是+,-,*,/JENEXT0CMPAL, '-'JENEXT0CMPAL, '*'JENEXT0CMPAL, '/'JE NEXT0CALL NEWLINE;输入的运算符不合法,重新输入MOVDI, OFFSETDATA4CALL DISPLJMPAGAINNEXT0:MOVOPER,AL;保存运算符CALL NEWLINEMOV DI,OFFSET DATA2 ;输入第二个

4、操作数CALLDISPLMOVSI,2CALL INPUTMOVAX,DATA0MOVBX,DATA2CMPOPER,'+'判断是那种操作,进行运算JE NEXT1CMPOPER,'-'JE NEXT2CMPOPER,'*'JE NEXT3CMPOPER,'/'JE NEXT4NEXT1:; 加法运算CLCADCAX,BXJNC N1MOVFLAG,1;判断是否进位N1: MOVDATA4,AX;运算结果放入内存JMPOUTPUTNEXT2:;减法运算CLCSBBAX,BXJNC N2MOVFLAG,1;判断是否借位NEGAXN2

5、: MOVDATA4,AX;运算结果放入内存JMPOUTPUTNEXT3:; 乘法运算CLCMOVDX,0MULBXMOVDATA4,AX;运算结果放入内存JMPOUTPUTNEXT4:;除法运算CLCMOVDX,0CMPBX,0JNZ N4;判断除数是否为 0CALLNEWLINECALLERRORCALLNEWLINEMOVDI,OFFSET DATA2CALL DISPLMOVSI,2CALL INPUTJMPNEXT4N4: DIVBXMOVDATA4,AX;运算结果放入内存OUTPUT:CALL NEWLINEMOVDI,0CALLPRINTDISPOPERMOVDI,2CALLPR

6、INTDISP'='CMPFLAG,1JNZ NEXT5DISP'-'NEXT5:MOVDI,4CALLPRINT;输出第一个操作数;输出运算符;输出第二个操作数;输出结果MOV AH,4CHINT 21H;- 输入函数 -INPUT PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXMOV BX,0;BX 存放十进制数CLCMOV DX,0L0:;- 输入数字 -MOVAH,1INT21HCMPAL,0DHJEL2SUBAL,30HJLL1CMPAL,9JGL1;判断数字是否合法;- 转换成十进制数-MOVAH,0XCHG AX,BXM

7、OVCX,10MULCXADDAX,BXJCL1XCHG AX,BXJMPL0;转换成 10进制数放入内存L1:MOVDX,0MOVBX,0CALL NEWLINECALL ERRORJMPL0L2:CMPDX,0JNZL1MOVDATASI,BXMOVDX,0POPDXPOPCXPOPBXPOPAXRETINPUT ENDP;- 提示信息 -DISPLPROC NEARMOV AH,9MOV DX,DIINT 21HRETDISPLENDP;- 回车换行 -NEWLINE PROC NEARPUSH AXPUSH DXMOVDL,0AHMOVAH,2INT21HMOVDL,0DHMOVAH,2INT21HPOPDXPOPAXRETNEWLINE ENDP;- 错误提示 -ERROR PROC NEARPUSH AXPUSH DXMOVDX, OFFSET DATA1MOVAH,9INT21HPOPDXPOPAXRETERROR ENDP;- 显示函数 -PRINT PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXMOVCX,0MOVBX,10MOVAX,DATADILAST:MOVDIVDX,0BX;除 10压

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论