汇编语言实现四则运算_第1页
汇编语言实现四则运算_第2页
汇编语言实现四则运算_第3页
汇编语言实现四则运算_第4页
汇编语言实现四则运算_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

汇编语言实现四则运算汇编语言实现四则运算汇编语言实现四则运算DISPMACROVARMOVAH,2MOVDL,VARINT21HENDMDATASSEGMENTDATA0DB'PLEASEINPUTANUMBER(0-999):','$'DATA1DB'overflowinputagain:','$'DATA2DB'PLEASEINPUTANOTHERNUMBER(EXP:123)','$'DATA3DB'PLEASEINPUTANOPREATOR:','$'DATA4DB'THEOPERATORISWRONG,INPUTAGAIN:','$'OPERDB?FLAGDB0FLAG1DB0DATADW3DUP(?)DATASENDSSTACKSSEGMENTDW256DUP(?)STACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AXMOVDI,OFFSETDATA0

;提示信息CALLDISPLMOVSI,0

;SI作为数组下标CALLINPUTCALLNEWLINEMOVDI,OFFSETDATA3

;提示信息CALLDISPLAGAIN:MOVAH,1

;1号功能输入四则运算符INT21HCMPAL,'+'

;判断输入的可否是

+,-,*,/JENEXT0CMPAL,'-'JENEXT0CMPAL,'*'JENEXT0CMPAL,'/'JENEXT0CALLNEWLINE;输入的运算符不合法,从头输入MOVDI,OFFSETDATA4CALLDISPLJMPAGAINNEXT0:MOVOPER,AL;保留运算符CALLNEWLINEMOVDI,OFFSETDATA2;输入第二个操作数CALLDISPLMOVSI,2CALLINPUTMOVAX,DATA[0]MOVBX,DATA[2]CMPOPER,'+';判断是那种操作,进行运算JENEXT1CMPOPER,'-'JENEXT2CMPOPER,'*'JENEXT3CMPOPER,'/'JENEXT4NEXT1:;加法运算CLCADCAX,BXJNCN1MOVFLAG,1;判断可否进位N1:MOVDATA[4],AX;运算结果放入内存JMPOUTPUTNEXT2:;减法运算CLCSBBAX,BXJNCN2MOVFLAG,1;判断可否借位NEGAXN2:MOVDATA[4],AX;运算结果放入内存JMPOUTPUTNEXT3:;乘法运算CLCMOVDX,0MULBXMOVDATA[4],AX;运算结果放入内存JMPOUTPUTNEXT4:;除法运算CLCMOVDX,0CMPBX,0JNZN4;判断除数可否为0CALLNEWLINECALLERRORCALLNEWLINEMOVDI,OFFSETDATA2CALLDISPLMOVSI,2CALLINPUTJMPNEXT4N4:DIVBXMOVDATA[4],AX;运算结果放入内存OUTPUT:CALLNEWLINEMOVDI,0CALLPRINTDISPOPERMOVDI,2CALLPRINTDISP'='CMPFLAG,1JNZNEXT5DISP'-'NEXT5:MOVDI,4CALLPRINT

;输出第一个操作数;输出运算符;输出第二个操作数;输出结果MOVAH,4CHINT21H;输入函数INPUTPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXMOVBX,0;BX寄存十进制数CLCMOVDX,0L0:;输入数字MOVAH,1INT21HCMPAL,0DHJEL2SUBAL,30HJLL1CMPAL,9JGL1

;判断数字可否合法;变换成十进制数

MOVAH,0XCHGAX,BXMOVCX,10MULCXADDAX,BXJCL1XCHGAX,BXJMPL0

;变换成10进制数放入内存L1:MOVDX,0MOVBX,0CALLNEWLINECALLERRORJMPL0L2:CMPDX,0JNZL1MOVDATA[SI],BXMOVDX,0POPDXPOPCXPOPBXPOPAXRETINPUTENDP;提示信息DISPLPROCNEARMOVAH,9MOVDX,DIINT21HRETDISPLENDP;回车换行NEWLINEPROCNEARPUSHAXPUSHDXMOVDL,0AHMOVAH,2INT21HMOVDL,0DHMOVAH,2INT21HPOPDXPOPAXRETNEWLINEENDP;错误提示ERRORPROCNEARPUSHAXPUSHDXMOVDX,OFFSETDATA1MOVAH,9INT21HPOPDXPOPAXRETERRORENDP;显示函数PRINTPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXMOVCX,0MOVBX,10MOVAX,DATA[DI]LAST:MOVDIV

DX,0BX

;除10压栈PUSHDXINCCXCM

温馨提示

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

评论

0/150

提交评论