avr汇编百例-计算程序

avr汇编百例-计算程序

ID:11811926

大小:48.00 KB

页数:6页

时间:2018-07-14

avr汇编百例-计算程序_第1页
avr汇编百例-计算程序_第2页
avr汇编百例-计算程序_第3页
avr汇编百例-计算程序_第4页
avr汇编百例-计算程序_第5页
资源描述:

《avr汇编百例-计算程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、;范例9;16位整数被乘数*16位小数乘数-->16位整数积,精确到0.5MUL165:RCALLMUL16;先得到32位积SBRSR14,7;积小数部分最高位为1,将整数部分加1RET;否则返回LDIR17,255SUBR13,R17SBCR12,R17;以减去-1($FFFF)替代加1RET;范例10;32位被除数/16位除数-->16位商,精确到1DIV16:LDIR16,16;(r12r13r14r15)/(r10r11)-->r14r15DLOOP:LSLR15ROLR14ROLR13ROLR12;被除数左移1

2、位BRCSDI1SUBR13,R11SBCR12,R10;移出位为0,被除数高位字减去除数试商BRCCDI2;够减,本位商为1ADDR13,R11ADCR12,R10;否则恢复被除数RJMPDI3;本位商0DI1:SUBR13,R11SBCR12,R10;移出位为1,被除数高位字减去除数DI2:INCR15;本位商1DI3:DECR16BRNEDLOOPRET;范例11;32位被除数/16位除数-->16位商,精确到0.5;可能产生溢出!例$7FFFC000/$8000=$FFFF.8->$10000!DIV165:RC

3、ALLDIV16;(r12r13r14r15)/(r10r11)-->r14r15LSLR13ROLR12;余数乘2BRCSD165;有进位,转5入SUBR13,R11SBCR12,R10;否则,余数乘2减去除数BRCSD164;不够减,转4舍D165:CLRR13;否则将商增1SECADCR15,R13ADCR14,R13ADCR13,R13;若有溢出,溢出位在R13中RETD164:CLRR13RET;范例12;32位整数/16位整数->16整数+16位小数->4字节浮点数;(r12r13r14r15)/(r10r1

4、1)-->r12r13r14r15DIV16F:RCALLDIV16;先做整数除法MOVR9,r15MOVR8,r14;保存整数部分CLRR15CLRR14RCALLDIV16;除得小数部分MOVR11,R15MOVR15,R14MOVR13,R8MOVR14,R9;整数部分在r13r14,小数部分在r15r11LDIR17,$90;预设阶码$90(整数为16位)MOVR12,R17LDIR17,32;设32次右移DIV16L:SBRCR13,7RJMPNMLDN;最高位为1,已完成规格化LSLR11;否则继续右移R13

5、,R14,R15,R11ROLR15ROLR14ROLR13DECR12;阶码减1DECR17BRNEDIV16LCLRR12;右移达32次,浮点数为零,置零阶RETNMLDN:SBRSR11,7RJMPDIVRT;欲舍去部分(R11)最高位为0,转4舍RCALLINC3;否则尾数部分增1BRNEDIVRTINCR12;尾数增1后变为0,改为0.5,并将阶码增1DIVRT:LDIR17,$7F;将尾数最高位清除,表示正数(负数不要清除)ANDR13,R17;规格化浮点数在R12(阶码)R13R14R15(尾数)中RET;

6、范例13;(R16,R12,R13,R14,R15)/(R10,R11)-->R13,R14,R15DIV24:CLRR16;32位整数/16位整数->24位整数,要求(R10)不为0;否则;要求(R12)<(R11)DIV40:LDI17,24;40位整数/16位整数->24位整数要求(R16,R12)LXP:LSLR15;<(R10,R11)ROLR14ROLR13ROLR12ROLR16BRCCLXP1SUBR12,R11;右移后C=1够减SBCR16,R10;被除数减去除数RJMPDIV0;本位商为1LXP1:S

7、UBR12,R11;C=0SBCR16,R10;被除数减去除数试商BRCCDIV0;C=0够减,本位商1ADDR12,R11ADCR16,R10;否则恢复被除数,本位商0RJMPDIV1DIV0:INCR15;记本位商1DIV1:DECR17BRNELXPLSLR12ROLR16BRCSGINC;C=1,5入SUBR12,R11SBCR16,R10BRCSRET3;不够减,舍掉GINC:RCALLINC3;将商增1RET3:RET;范例14;定点整数(最大$FFFFFFFF)开平方子程序INTSQR:LDIR16,17;

8、SQR(R12,R13,R14,R15)-->(r15r8r9)CLRR8;R8,R9存储平方根CLRR9;r10,r11,r12,r13,r14,r15CLRR10;r8,r9(根)r16(counter)CLRR11;r10,r11:被开平方数扩展字节LDIR17,$40SQR0:SUBR12,R17SBCR11

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。