单片机乘法运算.docx

上传人:b****6 文档编号:7082448 上传时间:2023-01-17 格式:DOCX 页数:9 大小:15.38KB
下载 相关 举报
单片机乘法运算.docx_第1页
第1页 / 共9页
单片机乘法运算.docx_第2页
第2页 / 共9页
单片机乘法运算.docx_第3页
第3页 / 共9页
单片机乘法运算.docx_第4页
第4页 / 共9页
单片机乘法运算.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

单片机乘法运算.docx

《单片机乘法运算.docx》由会员分享,可在线阅读,更多相关《单片机乘法运算.docx(9页珍藏版)》请在冰豆网上搜索。

单片机乘法运算.docx

单片机乘法运算

单片机乘法运算

1.操作数在寄存器中,R0--R7

2.操作数在内RAM中

3.操作数在外RAM中

不过都大同小异,以2例,是个乘法子程序。

入口:

乘数R0,被乘数R1,字节数R7,结果在R0

MULN:

LCALLN2N;多字节十六进制乘法

RLCA

RLCA

MOVR3,A

MULN1:

MOVA,R5

MOVR0,A

CLRC

LCALLRLCN

JNCMULN2

LCALLADDN

MULN2:

DJNZR3,MULN1

N1N:

MOVA,R1

ADDA,R7

MOVR0,A

MOVA,R7

CLRC

RRCA

MOVR7,A

MOVR2,A

ADDA,R1

MOVR1,A

MULN3:

DECR0

DECR1

MOVA,@R0

MOV@R1,A

DJNZR2,MULN3

MOVA,R5

MOVR0,A

RET

;

RLCN:

MOVA,R7;多字节二进制无符号数左移一位

RLCN1:

MOVR2,A

PUSHPSW

ADDA,R0

MOVR0,A

POPPSW

RLCN2:

DECR0

MOVA,@R0

RLCA

MOV@R0,A

DJNZR2,RLCN2

RET

;

N2N:

MOVA,R7

MOVR2,A

ADDA,R0

MOVR6,A

MOVA,R0

MOVR5,A

MOVA,R1

MOVR4,A

ADDA,R7

MOVR0,A

N2N1:

MOVA,@R1

MOV@R0,A

INCR0

INCR1

DJNZR2,N2N1

MOVA,R6

MOVR0,A

LCALLCLRN

MOVA,R4

MOVR0,A

LCALLCLRN

MOVA,R4

MOVR1,A

MOVA,R5

MOVR0,A

MOVA,R7

ADDA,R7

MOVR7,A

RET

;

ADDN:

MOVA,R7

MOVR2,A

ADDA,R0

MOVR0,A

MOVA,R7

ADDA,R1

MOVR1,A

CLRC

ADN1:

DECR0

DECR1

MOVA,@R1

ADDCA,@R0

MOV@R0,A

DJNZR2,ADN1

RET

;

CLRN:

MOVA,R7

MOVR2,A

ADDA,R0

MOVR0,A

CLRA

CLRN1:

DECR0

MOV@R0,A

DJNZR2,CLRN1

RET

比如你要把12345678H这个十六进制数乘以87654321H,那么你可以这样调用:

MOVR0,#30H;被乘数区

MOVR1,#40H;乘数区

MOVR7,#04H;字节数

MOV30H,#12H;填充被乘数

MOV31H,#34H

MOV32H,#56H

MOV33H,#78H

MOV40H,#87H;填充乘数

MOV41H,#65H

MOV42H,#43H

MOV43H,#21H

CALLMULN;调用

这时的结果在R0所指的数据区,即30H-37H共八个字节。

当然你是3字节乘法的话,把R7改成03H就可以了,

结果为6个字节,高字节在前,低字节在后。

一定要注意把R0所指的区留出存放结果的空间。

比如3字节乘

法,你要留出6个字节空间,5字节乘法要留出10个字节的空间。

反正很灵活的。

想做多少字节乘法都可以

这是除法子程序,入口、字节数、出口和乘法一样,不过有个限制:

只限于被除数小于除数,结果为纯小

数。

不知老兄是否适用。

DIVN:

LCALLDIV0;多字节16进制除法子程序

JCDIVN1

SETBOV

RET

DIVN1:

MOVA,R0

MOVR4,A

ADDA,R7

MOVR5,A

MOVA,R7

MOVB,#08H

MULAB

MOVR3,A

DIVN4:

LCALLDIVN8

JCDIVN5

LCALLADDN

CLRC

DIVN5:

MOVA,R5

MOVR0,A

LCALLRLCN

DJNZR3,DIVN4

LCALLDIVN8

JNCDIVN6

MOVA,R5

MOVR0,A

LCALLINCN

DIVN6:

MOVA,R1

PUSHACC

MOVA,R7

MOVR2,A

ADDA,R4

MOVR0,A

ADDA,R7

MOVR1,A

DIVN7:

DECR0

DECR1

MOVA,@R1

MOV@R0,A

DJNZR2,DIVN7

POPACC

MOVR1,A

CLROV

RET

;

DIVN8:

MOVA,R4

MOVR0,A

CLRC

LCALLRLCN

MOV2FH.4,C

LCALLSUBN

ANLC,/2FH.4

CPLC

RET

;

DIV0:

MOVA,R7

MOVR2,A

ADDA,R1

MOVR1,A

MOVA,R7

ADDA,R0

MOVR0,A

CLRC

DIV01:

DECR0

DECR1

MOVA,@R0

SUBBA,@R1

DJNZR2,DIV01

RET

;

ADDN:

MOVA,R7

MOVR2,A

ADDA,R0

MOVR0,A

MOVA,R7

ADDA,R1

MOVR1,A

CLRC

ADN1:

DECR0

DECR1

MOVA,@R1

ADDCA,@R0

MOV@R0,A

DJNZR2,ADN1

RET

;

INCN:

MOVA,R7

INCN1:

MOVR2,A

ADDA,R0

MOVR0,A

SETBC

INCN2:

DECR0

CLRA

ADDCA,@R0

MOV@R0,A

DJNZR2,INCN2

RET

;

RLCN:

MOVA,R7

RLCN1:

MOVR2,A

PUSHPSW

ADDA,R0

MOVR0,A

POPPSW

RLCN2:

DECR0

MOVA,@R0

RLCA

MOV@R0,A

DJNZR2,RLCN2

RET

;

SUBN:

MOVA,R7

MOVR2,A

ADDA,R0

MOVR0,A

MOVA,R7

ADDA,R1

MOVR1,A

CLRC

SUB1:

DECR0

DECR1

MOVA,@R0

SUBBA,@R1

MOV@R0,A

DJNZR2,SUB1

RET

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1