Etual
全部博文(99)
2012年(3)
2011年(5)
2010年(4)
2009年(31)
2008年(56)
arrvin
wanjin3
道痞
songtao0
晓风凌殇
uijm
cynthia
czllong1
yehuiliu
zhouzhua
lelee007
OsAtNbZS
鹏怜鸿影
分类:
2008-08-06 09:28:39
/*------------------------------------------------ 单字节乘法子程序 1. 芯片 :EM78P156N 2. 作者 :Etual 3. 联系 :Etual@163.com 4. 日期 :2007-4-27 测试条件:
0*0 = 0 0*1 = 0 0xFF * 0xFF = 0xFE01 0x55 * 0xAA = 0x3872 结果: 抽取了几个比较极限的参数,全零和最大值情况另外取了一个普通数值,全部计算正确。 -------------------------------------------------*/r20 == 0x20r21 == 0x21r22 == 0x22count == 0x23psw == 0x03c == 0z == 2/*-----------------------------------------------*/ org 0x00 jmp start start: mov a,@0x55 mov r21,a mov a,@0xaa mov r22,a call mul_subloop: wdtc jmp loop/*--------------------------------------------------- 单字节的乘法功能:R21*R22-->R20:R21(H:L)入口:
被乘数 :R21 乘数 :R22出口:
积 :R20:R21(R20为高位) 局部变量 :count ---------------------------------------------------*/mul_sub: clr r20 mov a,@8 mov count,a bc psw,c rrc r21 mul_r1: jbs psw,c jmp mul_r2 mov a,r22 add r20,a mul_r2: rrc r20 rrc r21 djz count jmp mul_r1 ret
上一篇:调用DOS提供的 1ch 时钟中断
下一篇:双字节乘法子程序
登录 注册