算法乘法与除
关于分数加减乘除的算法

关于分数加减乘除的算法
分数加减乘除是数学中常见的运算方式,它涉及到分数的加法、减法、乘法和除法。
在进行这些运算时,我们需要遵循一定的算法
和步骤,以确保计算的准确性。
下面就来分别介绍一下分数加减乘
除的算法。
1. 分数加法算法:
对于分数a/b和c/d的加法,我们首先需要确保两个分数的
分母相同,然后将分子相加,分母保持不变。
具体步骤如下:
a/b + c/d = (ad + bc)/(bd)。
2. 分数减法算法:
对于分数a/b和c/d的减法,同样需要确保两个分数的分母
相同,然后将分子相减,分母保持不变。
具体步骤如下:
a/b c/d = (ad bc)/(bd)。
3. 分数乘法算法:
对于分数a/b和c/d的乘法,我们直接将分子相乘,分母相乘。
具体步骤如下:
a/b c/d = (ac)/(bd)。
4. 分数除法算法:
对于分数a/b和c/d的除法,我们将除数取倒数,然后将分
数乘以倒数得到结果。
具体步骤如下:
a/b ÷ c/d = a/b d/c.
在进行分数加减乘除运算时,我们需要特别注意分母不能为零,需要将分数化简为最简形式,以及在需要时将结果转换为最简分数
或混合数。
掌握这些算法和技巧,可以帮助我们更准确地进行分数
的加减乘除运算,提高数学计算的效率和准确性。
数学思维:乘除法的简便算法教案

一、教学目标1.理解乘除法的概念与意义;2.掌握乘除法的基础算法;3.运用加减乘除基础算法进行简便算法;4.培养学生的数学思维能力和解决问题的能力。
二、教学重点1.乘除法的基础算法;2.乘除法的简便算法。
三、教学难点1.简便算法的理解与运用;2.培养学生的数学思维能力。
四、教学方法1.谈话启发法;2.归纳法;3.举例法。
五、教学过程Step 1 warming up教师可以利用一个小故事开始本课堂教学。
让学生在故事中体验到乘除法的重要性和概念。
Step 2 数学思维:乘除法的意义和基础算法1.乘法的意义:乘法是指在一个数的基础之上增大或缩小的运算。
例如,2 x 3 的意思就是把 2 的意义按照 3 倍来表达。
2.除法的意义:除法是指在一个数的基础之上减小或扩大的运算。
例如,6 ÷ 2 的意思就是把 6 的意义按照 2 倍来表达。
3.乘法基础算法:例子:计算 23 x 7方法一:分步计算,即横乘竖相加 2 x 7 + 3 x 7 = 14 + 21 = 35方法二:交叉相乘法,即 2 x 7 + 20 x 3 = 14 + 60 = 744.除法基础算法:例子:计算54 ÷ 6方法一:试除法,即54 ÷ 6 = 9方法二:乘法逆运算法,即 6 x 9 = 54Step 3 数学思维:乘除法的简便算法1.乘法简便算法:a.个位数相乘按顺序乘起来就行了,再加起来。
例如:7 x 6 = 42b.一位数与十位数相乘将一位数乘以十位数中的数字,再结尾加一个零即可。
例如:5 x 20 = 100c.两位数相乘用竖式乘法的方法,只是在个位数上不用乘了,直接相乘。
例如:23 x 17 = 391d.三位数以上相乘先用竖式乘法算出来,再把相同位数上的数字相加即可。
例如:235 x 462 = 1085702.除法简便算法:a.能被 2 整除的数字只需重复地除以 2 即可。
例如:100 ÷ 2 = 50b.能被 5 或 10 整除的数字末尾数字直接除以 5 或 10 即可。
乘除法的一些简便算法

乘除法的一些简便算法乘除法的一些简便算法教学内容:教材67页例3、例4、及做一做练习十九学习目的:1、知识目的:了解一个数延续用两个数除,每次都能除尽的时分,可以先把两个除数相乘,用它们的积去除这个数,结果不变的规律。
使先生掌握除法中两种简便算法:〔1〕一个数延续除以两个一位数,假设这两个一位数的乘积是整十数时,就可以把两个一位数先乘起来,再用它们的积去除被除数:〔2〕一个数除以一个两位数,假设能把除数分解成两个一位数,而且用其中的一个位数去数被除数比拟简便时,就可以用这两个一位数依次去除被除数。
2、才干目的:进一步掌握总结规律的方法。
提高先生灵敏运用知识处置效果的才干。
3、德育目的:培育先生由详细到笼统的概括才干和积极探求规律的肉体。
经过对规律性知识的运用,训练先生思想的灵敏性,教育先生做事要契合实践不要生搬硬套。
4、创新目的:经过计算,引导先生观察,从而感受美源于生活,美来自消费和时代的提高。
学情剖析:教材剖析:乘这里讲的简便算法是:一个数延续除以两个一位数,改成除以这两个一位数的积;或许把一个数除以两位数,改成延续除以两个一位数。
这种简便算法,是应用了〝一个数延续用两个数除,每次都能除尽的时分,可以先把两个除数相乘,用它们的积去除这个数,结果不变〞这一规律。
此外,还要看两个一位数相乘的积能否得整十数,以及怎样把用两位数除改写成用两个适宜的一位数连除,使计算简便。
因此,教材一末尾,先温习用整十数除的口算,把一个两位数改写成两个一位数相乘,为学习新知识做预备。
再温习连除运用题,进而经过连除运用题的两种解法的结果一样,从而说明:一个数延续用两个数除,每次都能除尽的时分,可以先把两个除数相乘,用它们的积去除这个数,结果不变。
确定重点:1、教学重点:了解一个数延续用两个一位数去除,每次都能除尽的时分,可以先把两个除数相乘,用它们的积去除这个数结果不变这一规律。
掌握由此规律得出的两种简便方法2、教学难点:在除法中,灵敏运用所学知识简便计算3、创新点:关于除法计算能依据详细状况灵敏采取多种方法处置4、德育点:先生谈收获的进程中,教员注重引导先生谈从其他同窗那里取得的信息;学具的选择:口算卡片教学课件主要技术:留空白联想鼓舞创新一、教员行为:导引目的1、口算〔投影出示〕240÷20 360÷40 450÷30 350÷70450÷50 630÷70 800÷100 240÷802、填空,把下面各数,分解成两个一位数相乘。
《乘法和连除的简便算法》的教学设计和教学反思

《乘法和连除的简便算法》的教学设计和教学反思教学内容:人教版小学四年级下册第29页的例8及相关练习。
教学目标:理解一个数连续除以两个数,改成乘这两个数的积的算理。
理解一个数乘一个数转化为一个数连续乘两个数的算理,及利用乘法分配律转化为一个数分别乘两个数再想加的算理。
教学重难点:重点:理解掌握连乘和连除的简便算法。
难点:选择合理的简便算法。
教学设计:一、复习导入:1、我来试一试:6×4×25= 7×8×125= 4×7×25=25×4×9= 56×125= 25×24=2、课件出示情境图,引入新课。
二、探究学习新课:1、出示例(8):王老师为了丰富同学们的课余生活,买了5副羽毛球拍,花了330元。
还买了25筒羽毛球,每筒32元。
(“一打”是12个。
)(1)王老师一共买了多少个羽毛球?(怎样列式?)方法一:12×25 方法二:12×25=(3×4)×25 =(10+2)×25=3×(4×25)=10×25+2×25=3×100 =250+50=300(个)=300(个)(2)每支羽毛球拍多少钱?方法一:330÷5÷2 方法二:330÷(5×2)=66÷2 =330÷10=33(元)=33(元)2、引导学生观察、比较这几组算式的左右两边各有什么特点?(引导学生观察两种解法,初步发现:330÷5÷2=330÷(5×2)。
)3、小组讨论,归纳概括规律。
(课件出示文字,师据生回答板书字母公式。
)一个数连续除以两个数,等于一个数除以两个数的积。
(反之,一个数除以两个数的积就等于一个数连续除以这两个数。
)这个规律我们可以用带字母的式子来表示吗?能,a÷b÷c=a÷(b×c)三、巩固练习。
小学三年级数学华数思维训练导引――计算问题(二)乘法与除法

华数思维训练导引――计算问题(二)乘法与除法1.算式333×625×125×25×5×16×8×4×2的结果中末尾有多少个零?解答:找出算式中含有5的是:625×125×25×5=(5×5×5×5)×(5×5×5)×(5×5)×5,共10个5;找出算式中含有2的是:16×8×4×2=(2×2×2×2)×(2×2×2)×(2×2)×2,共10个2。
每一组5×2=10,产生1个0,所以共有10个0。
答:结果中末尾有10个零。
2.如果n=2×3×5×7×11×13×17×125。
那么n的各位数字的和是多少?解答:2×3×5×7×11×13×17×125=(7×11×13) ×(3×17) ×(2×5×125)=1001×51×1250=1001×(50×1250+1×1250)=1001×(12500÷2+1250)=1001×(62500+1250)=(1000+1)×63750=63750000+63750=638137506+3+8+1+3+7+5+0=33答:n的各位数字的和是33.3.(1)计算:5÷(7÷11)÷(11÷15)÷(15÷21),(2)计算:(11×10×9…×3×2×1)÷(22×24×25×27).解答:(1)5÷(7÷11)÷(11÷15)÷(15÷21)=5×11÷7×15÷11×21÷15=5×11÷11×15÷15×21÷7=5×21÷7=5×3×7÷7=5×3=15(2)(11×10×9…×3×2×1)÷(22×24×25×27)=(11×10×9…×3×2×1)÷22÷24÷25÷27)=(11×2÷22) ×(10×5÷25) ×(9×6 ÷27) ×(8×3÷24) ×7×4=1×2×2×1×7×4=4×28=1124.在算式(□□-7×□)÷16=2的各个方框内填入相同的数字后可使等式成立,求这个数字.解答:□□-7×□=11×□-7×□=□×(11-7)=□×4,因为□×4÷16=2,所以□×4=32,□=8答:□=8.5. 计算:9×17+91÷17-5×17+45÷17.解答:9×17+91÷17-5×17+45÷17=9×17-5×17+91÷17+45÷17=(9-5)×17+(91+45)÷17=4×17+136÷17=68+8=766. 计算:567×142+426×811-8520×50.解答:567×142+426×811-8520×50=567×142+3×142×811-8520×100÷2 .=142×(567+3×811)-852000÷2=142×3000-426000=426000-426000=07. 计算:28×5+2×4×35+21×20+14×40+8×62.解答:28×5+2×4×35+21×20+14×40+8×62=2×2×7×5+2×4×5×7+3×7×4×5+2×7×5×2×4+8×62=2×2×7×5×(1+2+3+4)+496=10×14×10+496=1400+496=18968. 计算:55×66+66×77+77×88+88×99.解答:55×66+66×77+77×88+88×99=(11×5)×(11×6)+(11×6)×(11×7)+(11×7)×(11×8)+(11×8)×(11×9)=11×11×(5×6+6×7+7×8+8×9)=11×(10+1)×(30+42+56+72)=(110+11)×200=121×200=242009. 计算:(123456+234561+345612+456123+561234+612345) ÷7.解答:(123456+234561+345612+456123+561234+612345) ÷7=[(1×100000+2×10000+3×1000+4×100+5×10+6)+(2×100000+3×10000+4×1000+5×100+6×10+1)+(3×100000+4×10000+5×1000+6×100+1×10+2)+(4×100000+5×10000+6×1000+1×100+2×10+3)+(5×100000+6×10000+1×1000+2×100+3×10+4)+(6×100000+1×10000+2×1000+3×100+4×10+5)] ÷7=[1+2+3+4+5+6]×100000+(2+3+4+5+6+1)×10000+(3+4+5+6+1+2)×1000+(4+5+6+1+2+3)×100+(5+6+1+2+3+4)×10+(6+1+2+3+4+5)×1] ÷7=(21×100000+21×10000+21×1000+21×100+21×10+21×1)÷7=21×100000÷7+21×10000÷7+21×1000÷7+21×100÷7+21×10÷7+21×1÷7=300000+30000+3000+300+30+3=33333310. (87+56+73+75+83+63+57+53+67+78+65+77+84+62) ÷14.解答:(87+56+73+75+83+63+57+53+67+78+65+77+84+62) ÷14=[(8+5+7+7+8+6+5+5+6+7+6+7+8+6)×10+(7+6+3+5+3+3+7+3+7+8+5+7+4+2)]÷14=[(14×7-7)×10+(14×7-28)] ÷14=[(13×7)×10+(10×7)]÷14=(130+10)×7÷14=140×7÷14=10×7=7011.在算是12345679×□=888888888,12345679×○=555555555的方框和圆圈内分别填入恰当的数后可使两个等式都成立,求所填的两个数之和.解答:□×9个位是8,○×9个位是5,所以□的个位是2,○的个位是5。
加减乘除算法(运算法则)

加减乘除的运算法则加减(笔算):1、整数①列竖式时,各个位数对齐;②加法时,从低位算起,满十就往前进一;③减法时,从低位算起,哪一位上的数不够减,就从前一位借1当10,再和该位上的数加在一起减。
2、小数①列竖式时,小数点对齐;②加法时,从低位算起,满十就往前进一;③减法时,从低位算起,哪一位上的数不够减,就从前一位借1当10,再和该位上的数加在一起减;④相加减时,得数中的小数点和竖式中的小数点对齐;⑤小数部分末尾有0的,一般利用小数的性质把末尾的0去掉。
3、分数①同分母分数相加减,分母不变,分子相加减;②异分母分数相加减,先通分,再按照同分母分数的加减法进行计算;③计算结果化成最简分数。
乘法:1、整数①从最低位乘起,依次用第二个乘数上的每一位去乘第一个乘数;②用第二个乘数上的哪一位数去乘的,积的末尾就写在哪一位数上;③最后将各部分的积相加。
(补充:算理:12*3,可以看成1个10乘以3,加上2个1乘以3)2、小数①从最低位乘起,依次用第二个乘数上的每一位去乘第一个乘数;②用第二个乘数上的哪一位数去乘的,积的末尾就写在哪一位数上;③最后将各部分的积相加;④看两个乘数中有几位小数,就从积的右边数出几位小数,小数部分末尾有0的,把末尾0去掉,位数不够时,在前面用0补足。
(补充:算理:0.5*0.7,可以看成5个十分位,乘以7个十分位,最后乘数一共有几位小数,积也要有几位小数)3、分数①分数与整数相乘,整数与分子相乘,积为分子,分母不变,计算结果化成最简分数(可以在计算中进行约分);②分数与分数相乘,分子相乘积为分子,分母相乘积为分母,结果化成最简分数(可以在计算中进行约分)。
除法:1、整数①从最高位除起,除数几位,就看被除数前几位,如果商不够1,就多看一位被除数再进行试商,除数除到被除数哪一位,商就写在哪一位上;②每次得到的余数要比除数小;③如果除到末尾仍有余数,就在余数的后面添“0”继续除。
2、小数①除数是整数时,按照整数的除法来,从最高位除起,除数几位,就看被除数前几位,如果商不够1,就多看一位被除数再进行试商,除数除到被除数哪一位,商就写在哪一位上,除到末尾仍有余数的,就在余数后添“0”继续除;②除数是小数时,先移动除数的小数点,使除数变成整数,同时把被除数的小数点向右移动相同的位数,如果位数不够,就添0补足,然后按除数是整数的除法进行计算。
人教版四年级数学下册 3-2-3 乘法和连除的简便算法课件(共17张PPT)
课堂练习
2.教材第30页练习八第1(后三行),2题。
1.计算下面各题,怎样简便就怎样计算。
88×125 =(11×8)×125 =11×(8×125) =11×1000 =11000
99×38+38 =38×(99+1) =38×100 =3800
课堂练习
2.教材第30页练习八第1(后三行),2题。
(2) 3500÷28 =3500÷(7×4) =3500÷7÷4 =500÷4 =125
课堂练习
2.教材第30页练习八第1(后三行),2题。
1.计算下面各题,怎样简便就怎样计算。
250×13×4 =250×4×13 =1000×13 =13000
3200÷4÷25 =3200÷(4×25) =3200÷100 =32
人教版 四年级下册 第三单元
乘除的简便计算
例8
例8
12×25=300(个) 答:王老师一共买了300个羽毛球。
例8
4 25 100 300
小结:一个数乘以一个数, 可以把其中一个乘数看成 两个因数相乘,再运用乘
法结合律计算。
10×25+2×25 250+50 300
小结:一个数乘以一个 数,可以把其中一个乘 数看成两个数的和,再 运用乘法分配律计算。
1.计算下面各题,怎样简便就怎样计算。
17×23-23×7 =23×(17-7) =23×10 =230
72×125 =(9×8)×125 =9×1000 =9000
课堂练习
2.
2.教材第30页练习八第1(后三行),2题。
350÷14
=350÷7÷2
=50÷2
=25(册)
答:平均每个班可以分到25册。
整数乘除法运算法则
整数乘除法运算法则是什么先乘除,后加减,有括号的先算括号里的积/一个因数=另一个因数被除数/除数=商被除数/商=除数除数*商=被除数整数加、减计算法则:1)要把相同数位对齐,再把相同计数单位上的数相加或相减;2)哪一位满十就向前一位进。
2、小数加、减法的计算法则:1)计算小数加、减法,先把各数的小数点对齐(也就是把相同数位上的数对齐),2)再按照整数加、减法的法则进行计算,最后在得数里对齐横线上的小数点点上小数点。
(得数的小数部分末尾有0,一般要把0去掉。
)3、分数加、减计算法则:1)分母相同时,只把分子相加、减,分母不变;2)分母不相同时,要先通分成同分母分数再相加、减。
4、整数乘法法则:1)从右起,依次用第二个因数每位上的数去乘第一个因数,乘到哪一位,得数的末尾就和第二个因数的哪一位对个因数的哪一位对齐;2)然后把几次乘得的数加起来。
(整数末尾有0的乘法:可以先把0前面的数相乘,然后看各因数的末尾一共有几个0,就在乘得的数的末尾添写几个0。
)5、小数乘法法则:1)按整数乘法的法则算出积;2)再看因数中一共有几位小数,就从得数的右边起数出几位,点上小数点。
3)得数的小数部分末尾有0,一般要把0去掉。
6、分数乘法法则:把各个分数的分子乘起来作为分子,各个分数的分母相乘起来作为分母,(即乘上这个分数的倒数),然后再约分。
7、整数的除法法则1)从被除数的商位起,先看除数有几位,再用除数试除被除数的前几位,如果它比除数小,再试除多一位数;2)除到被除数的哪一位,就在那一位上面写上商;3)每次除后余下的数必须比除数小。
8、除数是整数的小数除法法则:1)按照整数除法的法则去除,商的小数点要和被除数的小数点对齐;2)如果除到被除数的末尾仍有余数,就在余数后面补零,再继续除。
9、除数是小数的小数除法法则:1)先看除数中有几位小数,就把被除数的小数点向右移动几位,数位不够的用零补足;2)然后按照除数是整数的小数除法来除10、分数的除法法则:1)用被除数的分子与除数的分母相乘作为分子;2)用被除数的分母与除数的分子相乘作为分母。
四年级乘除法中的简便算法
乘法和除法是四年级数学中重要的基础概念和运算。
掌握了简便的乘除法算法,可以帮助孩子们更快速、准确地解决乘除问题。
下面将为大家介绍四年级乘除法中常用的简便算法。
一、乘法1.倍数思想倍数思想是计算乘法中常用的一种简便算法。
基本思想是将一个数乘以一个整数倍,然后再进行相应的运算。
例如:计算23×6,可以先计算20×6=120,然后再计算3×6=18,最后将两个结果相加得到答案1382.分解法分解法是将一个数进行分解后计算各个部分再相加的算法。
例如:计算56×7,可以将56分解成50和6,即计算50×7再加上6×7,最后将两个结果相加得到答案3923.交换律和乘法的形式乘法中的交换律和乘法的形式可以帮助我们在计算乘法时选择更为简便的方式。
例如:计算49×25,可以将25分解成20和5,即计算49×20再加上49×5,最后将两个结果相加得到答案1225二、除法1.分解法除法的分解法是将被除数进行分解后逐个计算部分的算法。
例如:计算126÷6,可以将126分解成120和6,即计算120÷6再加上6÷6,最后将两个结果相加得到答案212.倍数法倍数法是通过计算被除数中包含几个除数来得到结果的算法。
例如:计算72÷9,可以从9开始逐渐增加,看看是否可以整除,即9、18、27、36、45、54、63、72,因此72÷9的商是83.乘法逆运算法乘法逆运算法是通过计算乘积和被除数之间的关系来得到商的算法。
例如:计算84÷12,可以从12开始逐渐增加,看看是否可以乘以一个数得到84,即12×1、12×2、12×3、12×4、12×5、12×6,因此84÷12的商是7三、综合运用当我们在计算复杂一些的乘除法问题时,可以综合运用上述的简便算法来提高计算速度和准确性。
代数式的乘法和除法
代数式的乘法和除法代数是数学的一个重要分支,研究各种未知数之间的关系和运算规律。
而代数式则是代数的基本表达形式,通常由数、字母和运算符号组成。
在代数中,乘法和除法是最为常见和基础的运算,本文将对代数式的乘法和除法进行详细介绍。
一、代数式的乘法在代数中,乘法是将两个或多个代数式相乘的运算。
代数式的乘法有以下几种基本形式:1. 单项式相乘:单项式是只包含一个字母或数的代数式,形如a、3、2x等。
当两个单项式相乘时,只需要将系数相乘,并将字母指数相加。
例如,2x和3y相乘得到6xy。
2. 多项式相乘:多项式是由多个单项式相加组成的代数式,形如3x+2y、4x^2+5xy+6y^2等。
多项式的乘法需要将每一个单项式相乘,并进行合并同类项的运算。
例如,(x+2)(x+3)可以展开为x^2+5x+6。
3. 乘法公式:乘法公式是一些常用的代数式乘法规律的总结。
常见的乘法公式包括二次公式、差平方公式等,可以通过这些公式简化代数式的乘法运算。
例如,(a+b)^2展开后可得到a^2+2ab+b^2。
二、代数式的除法除法是将一个代数式分别除以另一个代数式的运算。
代数式的除法有以下几种基本形式:1. 单项式除法:当一个多项式除以一个单项式时,可以将每一个单项式分别除以该单项式。
例如,(3x^2+6x)/(3x)=x+2。
2. 多项式除法:多项式之间的除法一般采用长除法算法进行计算,类似于数字的长除法运算。
长除法的步骤包括先确定商的首项,然后将该项与除式相乘,并用结果减去被除式,重复这个步骤直到无法进行下去。
例如,(3x^2+6x)/(x+2)可以通过详细计算得到商为3x-6和余数为12。
3. 除法公式:除法公式是一些常用的代数式除法规律的总结。
常见的除法公式包括二次除法公式、平方差公式等,可以通过这些公式简化代数式的除法运算。
例如,(a^2-b^2)/(a-b)可以化简为a+b。
三、乘法和除法的运算法则1. 乘法的交换律和结合律:乘法满足交换律和结合律,即两个代数式相乘的顺序可以交换,多个代数式相乘的结果与其分别相乘再合并结果是相同的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
详解基于汇编语言的多字节无符号数乘除法
单片机的指令系统中有一些单字节运算指令,但在单片机开发应用中经常需要进行多字
节运算,以提高数据计算精度。然而大多数教材上所记载的的运算程序缺少详尽的解释,对
于初次接触单片机的人来说,理解起来有一些难度。并且多字节无符号数乘除法是很多其他
算法的基础。因此我在此就基于汇编语言的多字节无符号数乘除法运算程序作一下详尽的解
析。
多字节无符号数乘法
1、算法原理:
通过程序实现无符号数的乘法,采用的是将被乘数循环左移的方式。简
单的说就是乘数的位权表示该位上的数码与被乘数相乘时将被乘数循环左
移了多少次,数码是0还是1表示该位与被乘数相乘时是否跳过。该运算方
式类似于乘法的笔算(见右图)。
2、程序设计:
该处以两字节与两字节相乘为例来进行说明。
被乘数存放在R3、R2,
乘数存放在R1、R0,结果存放在R7、R6、R5、R4组成的四字节
单元。
程序流程图如下:
是
开始
将R7R6R5R4四字节单元清零
将计数器初始化为16
将R7~R4的四字节单元整体循环左移
将R1R0单元带进位标志位整体循环左移
判断进位标志位是否为
零?
将R3R2里的数加到R7R6R5R4上
否
将计数器减1
判断计数器是否为零
结束
是
否
01111101111
110011
101001
011010
100110
111010010011×
具体程序如下:
MUL2BY2:PUSHA;1:将寄存器A里的数压入堆栈。
PUSH46H;2将计数器里的数压入堆栈。
CLRA;3、3~7:R7R6R5R4四字节单元清零
MOVR7,A;4
MOVR6,A;5
MOVR5,A;6
MOVR4,A;7
MOV46H,#10H;8计数器初始化为16
MULLOOP1:CLRC;9~21:R7R6R5R4四字节单元循环左移。
MOVA,R4;10
RLCA;11
MOVR4,A;12
MOVA,R5;13
RLCA;14
MOVR5,A;15
MOVA,R6;16
RLCA;17
MOVR6,A;18
MOVA,R7;19
RLCA;20
MOVR7,A;21
MOVA,R0;22~27:R1R0单元带进位标志位循环左移。
RLCA;23
MOVR0,A;24
MOVA,R1;25
RLCA;26
MOVR1,A;27
JNCMULLOOP2;判断进位标志位是否为0。
CLRC;清除进位标志位。
MOVA,R4;30~41:将R3R2中的数加到R7R6R5R4四字节单元上。
ADDCA,R2;31
MOVR4,A;32
MOVA,R5;33
ADDCA,R3;34
MOVR5,A;35
MOVA,R6;36
ADDCA,#00H;37
MOVR6,A;38
MOVA,R7;39
ADDCA,#00H;40
MOVR7,A;41
MULLOOP2:DJNZ46H,MULLOOP1;42将计数器减1并判断是否为0。
POP46H;43将计数器里的数弹出堆栈。
POPA;44将寄存器A里的数弹出堆栈。
RET;45子程序结束
程序说明:
总结:
以上程序尽提供了两字节无符号数乘法的程序,但不难看出可以很容易的将其扩展为更多字
节无符号数乘法。需要修改的主要包括:循环次数,得数的字节数,循环过程等。循环次数
根据乘数有多少位决定。得数的字节数等于被乘数的字节数加乘数的字节数。循环过程要根
据得数的字节数进行适当的延长。显然,如果再增加字节的话,通用工作寄存器区的字节数
已经不够,应考虑采用用户RAM区30H~7FH。
多字节除法
1、算法原理:
多字节无符号数的除法与多字节无符号数的乘法一样都是
采用循环左移的方式并且都与笔算算法类似。
不过多
字节无符号数的除法在移位时时将被除数不断的左移到除
数上,再用除数去减余数。当够减时,将相应位的商数置
一,当够减时,将相应位的商数置零,然后再循环左移再
相减,如此循环执行。
2程序设计:
以四字节/两字节为例进行说明,
被除数存放在
R7R6R5R4四字节单元,除数存放在R3R2,商存放
在R7R6R5R4四字节单元,余数存放在R1R0。
流程图如下
10011
110
1011
10001
1011
10011
1011
110101111011
10011
开始
将计数器初始化为32
将存放余数的R1R0清零
程序如下:
DIV4BY2:PUSHA;1将寄存器A里面的数压入堆栈。
PUSH46H;2将计数器里面的数压入堆栈。
MOV46H,#20H;3将计数器初始化为32。
MOVR0,#00H;4~5:将余数单元R1R0清零。
MOVR1,#00H;5
DIVLOOP1:MOVA,R4;6~25:将被除数单元R7R6R5R4不断循环左移并
不断移入R1R0。
RLCA;7
MOVR4,A;8
MOVA,R5;9
RLCA;10
MOVR5,A;11
MOVA,R6;12
RLCA;13
将被除数循环左移,并不断移入R0R1
蒋借位标去位C清零
R1R0~R3R2
判断借位标去位C
是否为0是将差移入R1R0将相应商数位置1将R7R6R5R4循环左移结束否判断计数器是否为0将相应商数置0否
是
MOVR6,A;14
MOVA,R7;15
RLCA;16
MOVR7,A;17
MOVA,R0;18
RLCA;19
MOVR0,A;20
MOVR1,A;21
RLCA;22
MOVA,R1;23
RLCA;24
MOVR1,A;25
CLRC;26借位标志位C清零。
MOVA,R0;27~31:余数R1R0减除数R3R2。
SUBBA,R2;28
MOVB,A;29
MOVA,R1;30
SUBBA,R3;31
JCDIVLOOP2;32判断借位标志位C是否为零。
MOVR0,B;33~34:借位标志位为零时,将差移入R1R0。
MOVR1,A;34
DIVLOOP2:CPLC;35将借位标志位C取反(若C为零则表示
R1R0大于R3R2应将商数的相应位置1,若
为1则说明R1R0小于R3R2应将商的相应
位置0)。
DJNZ46H,DIVLOOP1;36计数器减1并判断计数器是否为0。
MOVA,R4;37~48:将被除数单元R7R6R5R4整体循环
左移。
RLCA;38
MOVR4,A;39
MOVA,R5;40
RLCA;41
MOVR5,A;42
MOVA,R6;43
RLCA;44
MOVR6,A;45
MOVA,R7;46
RLCA;47
MOVR7,A;48
POP46H;49将计数器里面的数弹出堆栈。
POPA;50将寄存器A里面的数压入堆栈。
RET;51子程序结束。
程序说明:
总结:与乘法类似以上程序也可以扩展为更多字节的无符号数除法。