微机与汇编语言课程方案_第1页
微机与汇编语言课程方案_第2页
微机与汇编语言课程方案_第3页
微机与汇编语言课程方案_第4页
微机与汇编语言课程方案_第5页
已阅读5页,还剩4页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

个人资料整理 仅限学习使用《微机原理与接口技术》课程设计计算专机应业用:技术学100171031305号:方针 姓 名:个人资料整理 仅限学习使用微机原理与汇编语言课程设计一、课程设计题目四则运算:从键盘输入一个十进制两位数的四则运算表达式,编程计算表达式的值,输出十进制结果<有可能是三位或四位十进制),+-*/位置任意。二、课题分析该程序设计的关键是要根据四则运算中 <)、*、/、+、-、=的优先级设置符号的权值,其中

<、*、/、+、-、)、=

的权值分别设置为

5、4、4、3、3、1、0

,然后根据权值的大小进行运算。程序使用数字标志

SIGN1、括号标志SIGN2分别来判断数字是否输入完毕和括号是否配对,另外程序定义两个数据存储区域NUMB和MARK,其中NUMB用来保存输入的或运算的数值,MARK用来保存输入的符号及其对应的权值。程序不断判断输入的符号是否是左括号‘<’,当遇到左括号是在存储区MARK保存其符号,紧跟着将‘<’的权值改为2并保存之,这是为了使程序运算括号内的表达式,当遇到右括号‘)’时括号内运算将结束。需要注意的是程序执行完括号内表达式的运算及乘除运算后将在存储区MARK中覆盖符号<、)、*、/及紧跟着的权值,使得程序在运算整个四则运算表达式时当括号内表达式的运算及乘除运算结束后存储区MARK中只有‘+、-’运算符及紧跟着的权值,然后按照+、-运算符的左右顺序从左到右进行‘+、-’运算,当最后遇到等号‘=’时输出表达式的数值,然后再根据提示判断是否继续执行下一个四则运算表达式。DATASSEGMENTSIGN1DW0SIGN2DW0NUMBDW20DUP(0>MARKDB'M'DB10DUP(0>

。判断数字是否输入完毕。判断括号是否配对。保存输入的数值。保存输入的运算符ERRORDB'YOURINPUTISWRONG$'DATASENDSDISPMACROSTRLEADX,STRMOVAH,9INT21HENDMCHOICEMACROASC,HAO,H。宏定义,给运算符赋权值个人资料整理 仅限学习使用CMPAL,ASCJNEOTH&HAOMOVCH,HJMPOTH7ENDMCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:CALLCLEARMOVAX,DATASMOVDS,AXLEADI,NUMBLEASI,MARKCALLCRMOVAX,0MOVBX,0MOVCX,0MOVDX,0START1:CALLCRINPUT:MOVAH,1INT21HCMPAL,'='JEPD

。是等号,进一步判断输入括号是否配对CMPAL,28HJBINPUTCMPAL,39HJAINPUTCMPAL,2FHJBEJUDINCWORDPTRSIGN1SUBAL,30H

。判断是数字还是符号。是符号转入响应操作。将数字标志位加 1。将ASCII码转16进制MOVAH,0XCHGAX,[DI]MULBXMOVBX,10XCHGAX,[DI]ADD[DI],AXJMPINPUTPD:CMPWORDPTRSIGN2,0。判断配对标志位JEJUDJMPBCJUD:CMPWORDPTRSIGN1,0。判断数值指针是否已经下移一位个人资料整理 仅限学习使用JEFUHADDDI,2MOVWORDPTRSIGN1,0。将数字标志位复0FUH:CALLADVANCE。设定优先级CMPCH,5。判断输入的符号是否是左括号JNEPY。不是则判断输入的是否是右括号INCWORDPTRSIGN2。是左括号,括号标志位加1PY:CMPCH,1。判断输入的是否是右括号JNEAGAINDECWORDPTRSIGN2。是右括号,括号标志位减1AGAIN:CMPBYTEPTR[SI],'M'。判断运算符存储区是否为空如23*56-<8*19)/6+67-8=1322JESAVECMPCH,[SI]。[SI]的内容为前一个符号或其权值JASAVECMPBYTEPTR[SI],'('JNEYIDODECSIJMPINPUTYIDO:DECSIMOVCL,[SI]CALLMATCH。判断是什么运算符并进行相应的计算JMPAGAINSAVE:CMPCH,0。判断是否是等号JEOUTPUTCMPCH,1JEINPUT。“>”不保存,输入下一个数INCSIMOV[SI],AL。保存符号INCSICMPCH,5。判断是否是左括号JNEGO_ONMOVCH,2。改变(的权值GO_ON:MOV[SI],CH。紧跟着保存符号的权值JMPINPUTBC:LEADX,ERROR个人资料整理 仅限学习使用MOVAH,9INT21HJMPJ_SHUMATCHPROCNEAR

。子程序,进行相应的运算PUSHAXXORAX,AXXORBX,BXCMPCL,2AH

。乘法运算JNENEXT1SUBDI,2XCHGBX,[DI]SUBDI,2XCHGAX,[DI]IMULBXMOV[DI],AXADDDI,2JMPFINISHNEXT1:CMPCL,2FH

。除法运算JNENEXT2SUBDI,2XCHGBX,[DI]SUBDI,2XCHGAX,[DI]CWDIDIVBXMOV[DI],AXADDDI,2JMPFINISHNEXT2:CMPCL,2BH

。加法运算JNENEXT3SUBDI,2XCHGBX,[DI]SUBDI,2ADD[DI],BXADDDI,2JMPFINISHNEXT3:CMPCL,2DH

。减法运算JNEFINISHSUBDI,2XCHGBX,[DI]SUBDI,2SUB[DI],BXADDDI,2个人资料整理 仅限学习使用FINISH:POPAXRETMATCHENDPADVANCEPROCCHOICE28H,1,5OTH1:CHOICE29H,2,1OTH2:CHOICE2AH,3,4

。(。>。*OTH3:CHOICE2FH,4,4。/OTH4:CHOICE2BH,5,3。+OTH5:CHOICE2DH,6,3。-OTH6:CHOICE3DH,7,0。=OTH7:RETADVANCEENDPCLEARPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXMOVAX,0600HMOVBH,0FHMOVCX,0MOVDX,184FHINT10HPOPAXPOPBXPOPCXPOPDXRETCLEARENDP

。清屏CRPROCNEARPUSHAXPUSHDXMOVAH,2MOVDL,0DHINT21HMOVAH,2MOVDL,0AHINT21HPOPDXPOPAX

。回车换行个人资料整理 仅限学习使用RETCRENDPOUTPUT: 。输出运算结果SUBDI,2CMPWORDPTR[DI],0JGEW1NEGWORDPTR[DI]MOVDL,'-'MOVAH,2INT21HW1:MOVBX,10000MOVCX,5MOVSI,0W2:MOVAX,[DI]CWDDIVBXMOV[DI],DXCMPAL,0JNEW3CMPSI,0JNEW3CMPCX,1JEW3JMPW4W3:MOVDL,ALADDDL,30HMOVAH,2INT21HMOVSI,1W4:MOVAX,BXMOVDX,0MOVBX,10DIVBXMOVBX,AXLOOPW2CALLCRMOV

温馨提示

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

评论

0/150

提交评论