单片机乘法运算_第1页
单片机乘法运算_第2页
单片机乘法运算_第3页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机乘法运算1. 操作数在寄存器中, R0-R72. 操作数在内 RAM 中3. 操作数在外 RAM 中不过都大同小异,以 2 例,是个乘法子程序。入口:乘数 R0,被乘数 R1,字节数 R7,结果在 R0MULN:LCALLN2N;多字节十六进制乘法MULN1:MULN2:N1N:ADDMOVRLCRLCMOVMOVMOVCLRLCALLJNCLCALLDJNZMOVA,R7R0,AAAR3,AA,R5R0,ACRLCNMULN2ADDNR3,MULN1A,R1MOVCLRRRCMOVMOVADDMOVMULN3:DECMOVMOVDJNZMOVMOVA,R7CAR7,AR2,AA,R1R

2、1,ADECR0R1A,R0R1,AR2,MULN3A,R5R0,ARET;RLCN:MOVA,R7;多字节二进制无符号数左移一位RLCN1:MOVR2,APUSHPSWADDA,R0MOVR0,ARLCN2:POPDECMOVRLCMOVDJNZRETPSWR0A,R0AR0,AR2,RLCN2;N2N:MOVA,R7MOVR2,AADDA,R0MOVR6,AMOVA,R0MOVR5,AMOVA,R1MOVR4,AADDA,R7MOVR0,AN2N1:MOVA,R1MOVR0,AINCR0INCR1DJNZR2,N2N1MOVA,R6MOVR0,ALCALL CLRNMOVA,R4MOVR0

3、,ALCALL CLRNMOVA,R4MOVR1,AMOVA,R5MOVR0,AMOVA,R7ADDA,R7MOVR7,ARET;ADDN:MOVA,R7MOVR2,AADDA,R0MOVR0,AMOVA,R7ADDA,R1MOVR1,ACLRCADN1:DECR0DECR1MOVA,R1ADDCA,R0MOVR0,ADJNZR2,ADN1RET;CLRN:MOVA,R7MOVR2,AADDA,R0MOVR0,ACLRACLRN1:DECR0MOVR0,ADJNZR2,CLRN1RET比如你要把 12345678H这个十六进制数乘以87654321H ,那么你可以这样调用:MOVR0, #30

4、H;被乘数区MOVR1, #40H;乘数区MOVR7, #04H;字节数MOV30H, #12H;填充被乘数MOV31H, #34HMOV32H, #56HMOV33H, #78HMOV40H, #87H;填充乘数MOV41H, #65HMOV42H, #43HMOV43H, #21HCALLMULN这时的结果在R0;调用所指的数据区,即30H-37H共八个字节。当然你是 3 字节乘法的话,把 R7 改成 03H 就可以了,结果为 6 个字节,高字节在前,低字节在后。一定要注意把R0 所指的区留出存放结果的空间。比如3 字节乘法,你要留出 6 个字节空间, 5 字节乘法要留出10 个字节的空间

5、。反正很灵活的。想做多少字节乘法都可以。这是除法子程序,入口、字节数、出口和乘法一样,不过有个限制:只限于被除数小于除数,结果为纯小数。不知老兄是否适用。DIVN:LCALLDIV0;多字节 16 进制除法子程序JCDIVN1SETBOVRETDIVN1:MOVA, R0MOVR4, AADDA, R7MOVR5, AMOVA, R7MOVB, #08HMULABMOVR3, ADIVN4:LCALLDIVN8JCDIVN5LCALLADDNCLRCDIVN5:MOVA, R5MOVR0, ALCALLRLCNDJNZR3,DIVN4LCALLDIVN8JNCDIVN6MOVA, R5MOVR

6、0, ALCALLINCNDIVN6:MOVA, R1PUSHACCMOVA, R7MOVR2, AADDA, R4MOVR0, AADDA, R7MOVR1, ADIVN7:DECR0DECR1MOVA, R1MOVR0, ADJNZR2,DIVN7POPACCMOVR1, ACLROVRET;DIVN8:MOVA,R4MOVR0,ACLRCLCALLRLCNMOV2FH.4,CLCALLSUBNANLC,/2FH.4CPLCRET;DIV0: MOVA,R7MOVR2,AADDA,R1MOVR1,AMOVA,R7ADDA,R0MOVR0,ACLRCDIV01:DECR0DECR1MOVA,

7、R0SUBBA,R1DJNZR2,DIV01RET;ADDN:MOVA,R7MOVR2,AADDA,R0MOVR0,AMOVA,R7ADDA,R1MOVR1,ACLRCADN1:DECR0DECR1MOVA,R1ADDCA,R0MOVR0,ADJNZR2,ADN1RET;INCN:MOVA,R7INCN1:MOVR2,AADDA,R0MOVR0,ASETBCINCN2:CLRADDCMOVDJNZDECR0AA,R0R0,AR2,INCN2RET;RLCN: RLCN1: PUSH ADD MOV POP RLCN2: MOV RLC MOV DJNZMOVA,R7MOVR2,APSWA,R0R0,APSWDECR0A,R0AR0,AR2,RLCN2R

温馨提示

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

评论

0/150

提交评论