微机原理实验简易计算器.docx

上传人:hs****ma 文档编号:559772629 上传时间:2023-09-18 格式:DOCX 页数:6 大小:38.10KB
返回 下载 相关 举报
微机原理实验简易计算器.docx_第1页
第1页 / 共6页
微机原理实验简易计算器.docx_第2页
第2页 / 共6页
微机原理实验简易计算器.docx_第3页
第3页 / 共6页
微机原理实验简易计算器.docx_第4页
第4页 / 共6页
微机原理实验简易计算器.docx_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《微机原理实验简易计算器.docx》由会员分享,可在线阅读,更多相关《微机原理实验简易计算器.docx(6页珍藏版)》请在金锄头文库上搜索。

1、【实验题目】简单计算器设计【实验目的】综合测试学生微机接口技术及应用能力,包含系统构思设计、电路设计搭建、软件调试等;结合应用实质,培育学生运用微机技术服务应用、服求实质的能力。【基本要求】1)利用实验箱上的4x4键盘及6、运算,计算结果限制在范围2)16个按键的分配可以自行指定;位数码管,实现两个-655356553516位宽的非负整数(065535,超出范围在数码管最低位显示)进行、E;【扩展要求】1)按基本要求保持输入的范围不变(16位宽),扩展计算结果的范围到用足6位数码管,当计算结果超出-65535999999时,显示E;2)增加的功能,有小数显示;【实验程序】;该程序实现了基本要求

2、及扩展要求的2)DSEGSEGMENTNEXT:BUFFDB6DUP()MOVBYTEPTRSI,16LED_7DBINCSI3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39LOOPNEXTH,5EH,79H,71H,00H,40HCALLSHOW;将显示缓冲区中内容在LED前一次显POSITIONDB0DFH,0EFH,0F7H,0FBH,0FDH,0FEH示出来UNIT10DW10000,1000,100,10,1MOVCOUNT,0;记按下了几位数NEWNUMDB0NEXT2:COUNTDB0CALLSHOWFLAGDB0;能否有键按下

3、的标记CALLSCAN;判断能否有按键按下NEGTIDB0;能否为负数的标记CMPFLAG,1NUMDW0JZOKNUM1DW0JMPNEXT2NUM2DW0OK:TAGDB0;运算种类标记MOVFLAG,0POINTDB0;除法结果增加小数点标记MOVPOINT,0RESULTDW0MOVDX,3000H;判断是哪一个键被按下DSEGENDSMOVAL,0FFHCSEGSEGMENTOUTDX,ALASSUMEDS:DSEG,CS:CSEGMOVCH,-1;CH用于保存当前被扫描的列号START:MOVCL,07FHMOVAX,DSEGXL:MOVDS,AXROLCL,1MOVDX,300C

4、H;8255初始化INCCHMOVAL,81HMOVDX,3000HOUTDX,ALMOVAL,CLLEASI,BUFFOUTDX,ALMOVCX,6MOVDX,3008HINAL,DXJIAFA:ANDAL,0FHMOVTAG,1;置加法标记CMPAL,0FHCALLTO_DEC;将输入的数转变成十进制数保存JZXL;选中下一列被扫描MOVAX,NUMCMPAL,0EHMOVNUM1,AXJNZFOURJMPSTART;连续输入第二个按键数MOVCL,0;CL保存行号JIANFA:JMPFREEMOVTAG,2FOUR:CALLTO_DECCMPAL,0DHMOVAX,NUMJNZBAMOV

5、NUM1,AXMOVCL,4JMPSTARTJMPFREECHENGFA:BA:MOVTAG,3CMPAL,0BHCALLTO_DECJNZSHIERMOVAX,NUMMOVCL,8MOVNUM1,AXJMPFREEJMPSTARTSHIER:CHUFA:CMPAL,07HMOVTAG,4JNZXLCALLTO_DECMOVCL,12MOVAX,NUMFREE:MOVNUM1,AXADDCH,CL;行列值相加为按键代表的值JMPSTARTCMPCH,9CLEAR:JBESHUZIJMPSTARTCMPCH,12;加法YUNSUAN:JZJIAFACALLTO_DEC;将第二次输入的数转变成十进

6、制数CMPCH,13;减法保存JZJIANFAMOVAX,NUMCMPCH,14;乘法MOVNUM2,AXJZCHENGFACMPTAG,1CMPCH,15;除法JZSJIAFJZCHUFACMPTAG,2CMPCH,11;等号时进行运算JZSJIANFJZYUNSUANCMPTAG,3CMPCH,10;此键清屏重新输入JZSCHENGFJZCLEARCMPTAG,4SHUZI:JZSCHUFINCCOUNTYEAH:MOVNEWNUM,CHCALLCHULI;将结果中零的地址16关显示CALLCOPY;将新输入的按键值送入显示缓MOVTAG,0冲区的最末位MOVNEGTI,0MOVDX,30

7、00H;将LED关显示CALLSHOWMOVAL,0FFHJMPNEXT2OUTDX,ALSJIAF:CALLDELAY2CALLJIAJMPNEXT2JMPYEAHSJIANF:POSITIVE:CALLJIANMOVAX,NUM1JMPYEAHSUBAX,NUM2SCHENGF:JCYC2CALLCHENGOV:JMPYEAHMOVRESULT,AXSCHUF:CALLTO_SHOWSHUCALLCHUJMPOVER2JMPYEAHYC2:MOVAH,4CHLEASI,BUFFINT21HMOVBYTEPTRSI,14JIAPROCNEARINCSIPUSHAXMOVCX,5PUSHCXS

8、S2:PUSHSIMOVBYTEPTRSI,16MOVAX,NUM1INCSIADDAX,NUM2LOOPSS2JCYC1;溢出OVER2:MOVRESULT,AXPOPSICALLTO_SHOWSHUPOPCXJMPOVER1POPAXYC1:RETLEASI,BUFFJIANENDPMOVBYTEPTRSI,14CHENGPROCNEARINCSIPUSHAXMOVCX,5PUSHCXSS0:PUSHSIMOVBYTEPTRSI,16MOVAX,NUM1INCSIMULNUM2LOOPSS0JCYC3OVER1:MOVRESULT,AXPOPSICALLTO_SHOWSHUPOPCXJMP

9、OVER3POPAXYC3:RETLEASI,BUFFJIAENDPMOVBYTEPTRSI,14JIANPROCNEARINCSIPUSHAXMOVCX,5PUSHCXSS3:PUSHSIMOVBYTEPTRSI,16MOVAX,NUM1INCSICMPAX,NUM2LOOPSS3JAPOSITIVEOVER3:MOVNEGTI,1;结果为负数POPSIMOVAX,NUM2POPCXSUBAX,NUM1POPAXJCYC2RETJMPOVCHENGENDPCHUPROCNEARPUSHAXPUSHCXPUSHDXPUSHSIXORDX,DXMOVAX,NUM1DIVNUM2PUSHDXMOV

10、RESULT,AXCALLTO_SHOWSHUMOVPOINT,1LEASI,BUFFADDSI,5MOVCX,5PEA:MOVAL,SI-1MOVSI,ALDECSILOOPPEAPOPDXMOVAX,10MULDXXORDX,DXDIVNUM2MOVSI,ALPOPSIPOPDXPOPCXPOPAXRETCHUENDPCHULIPROCNEARPUSHSIPUSHCXLEASI,BUFFADDSI,5XX:CMPBYTEPTRSI,0JNZNOZEROMOVBYTEPTRSI,16DECSIJMPXXNOZERO:CMPNEGTI,1JNZZHENGINCSIMOVBYTEPTRSI,17

11、ZHENG:POPCXPOPSICHULIENDPTO_DECPROCNEARPUSHSIPUSHAXPUSHBXPUSHCXLEASI,BUFFMOVAL,COUNTXORAH,AHADDSI,AXDECSIXORAX,AXXORCH,CHMOVCL,COUNTAGAIN:ADDAX,AXMOVBX,AXADDAX,AXADDAX,AXADDAX,BXMOVBH,0MOVBL,SIADDAX,BXDECSILOOPAGAINMOVNUM,AXPOPCXPOPBXPOPAXPOPSIRETTO_DECENDPTO_SHOWSHUPROCNEARPUSHSIPUSHDIPUSHAXPUSHBXPUSHCXLEADI,BUFFADDDI,5LEASI,UNIT10MOVAX,RESULTMOVBYTEPTRDI,0DECDILOP0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号