【2017年整理】多字节无符号整数bcd码运算部分

上传人:豆浆 文档编号:1010779 上传时间:2017-05-25 格式:DOC 页数:9 大小:81.50KB
返回 下载 相关 举报
【2017年整理】多字节无符号整数bcd码运算部分_第1页
第1页 / 共9页
【2017年整理】多字节无符号整数bcd码运算部分_第2页
第2页 / 共9页
【2017年整理】多字节无符号整数bcd码运算部分_第3页
第3页 / 共9页
【2017年整理】多字节无符号整数bcd码运算部分_第4页
第4页 / 共9页
【2017年整理】多字节无符号整数bcd码运算部分_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《【2017年整理】多字节无符号整数bcd码运算部分》由会员分享,可在线阅读,更多相关《【2017年整理】多字节无符号整数bcd码运算部分(9页珍藏版)》请在金锄头文库上搜索。

1、asm51 汇编子程序(有关多字节无符号整数 bcd 码运算部分);=;多字节 二进制整数 转换为十进制整数子程序 NIBTD;入口:R0 指向多字节二进制整数高位,R1 指向结果多字节十进制整数高位,R7=n;使用 A,B ,R0R7 ,影响 CY;=NIBTD: MOV A,R0MOV R5,AMOV A,R1MOV R6,AMOV A,R7MOV R3,ACLR ANBD0: MOV R1,AINC R1DJNZ R3,NBD0MOV A,R7MOV B,#8MUL ABMOV R3,ANBD4: MOV A,R5ADD A,R7DEC AMOV R0,AMOV A,R7MOV R2,A

2、CLR CNBD1: MOV A,R0RLC AMOV R0,ADEC R0DJNZ R2,NBD1PUSH PSWMOV A,R6ADD A,R7DEC AMOV R1,APOP PSWMOV A,R7MOV R2,ANBD3: MOV A,R1ADDC A,R1DA AMOV R1,ADEC R1DJNZ R2,NBD3DJNZ R3,NBD4RET;=;=;多字节 十进制整数 转换为二进制整数子程序 NIDTB;入口:R0 指向多字节十进制整数高位,R1 指向结果多字节二进制整数高位,R7=n;使用 A,B ,R0R7 ,影响 CY;=NIDTB: MOV A,R1MOV R6,AMOV

3、 A,R7MOV R3,ACLR ANDB0: MOV R1,AINC R1DJNZ R3,NDB0MOV A,R7MOV R3,ANDB3: CALL NDB1MOV A,R0ANL A,#0F0HSWAP ACALL NDB2CALL NDB1MOV A,R0ANL A,#0FHCALL NDB2INC R0DJNZ R3,NDB3RETNDB1: MOV A,R7MOV R4,AMOV A,R6ADD A,R7DEC AMOV R1,ACLR CMOV R2,#0NDB4: MOV A,R1MOV B,#10PUSH PSWMUL ABPOP PSWADDC A,R2MOV R1,AMO

4、V R2,BDEC R1DJNZ R4,NDB4RETNDB2: MOV R5,AMOV A,R6ADD A,R7DEC AMOV R1,AMOV A,R7MOV R4,AMOV A,R5ADD A,R1MOV R1,ADEC R1DJNZ R4,NDB5RETNDB5: MOV A,R1ADDC A,#0MOV R1,ADEC R1DJNZ R4,NDB5RET;=;=;单字节 BCD码转换成压缩 BCD码子程序 BCDC;入口:R0 指向 2n 个单字节高位,R1 指向 n 个双字节高位,R3=n;使用 A,R0 ,R1 ,R3;=BCDC: MOV A,R0SWAP AINC R0ORL

5、 A,R0MOV R1,AINC R0INC R1DJNZ R3,BCDCRET;=;=;压缩 BCD码转换成单字节 BCD码子程序 CBCD;入口:R0 指向 n 个双字节高位,R1 指向 2n 个单字节高位,R3=n;使用 A,R0 ,R1 ,R3;=CBCD: MOV A,R0SWAP AANL A,#0FHMOV R1,AINC R1MOV A,R0ANL A,#0FHMOV R1,AINC R0INC R1DJNZ R3,CBCDRET;=;=;多字节 十进制加法子程序 CADD;入口:RO 指向被加数 n 字节压缩 BCD码高位,R1 指向加数 n 字节压缩 BCD码高位,R3=n

6、;结果:和数 压缩 BCD码放入 R0 指向的 n 个字节中;使用 A,R0 ,R1 ,R3,影响 CY;=CADD: MOV A,R0ADD A,R3DEC AMOV R0,AMOV A,R1ADD A,R3DEC AMOV R1,ACLR CCADL: MOV A,R0ADDC A,R1DA AMOV R0,ADEC R0DEC R1DJNZ R3,CADLRET;=;=;多字节 十进制减法子程序 CSUB1;入口:RO 指向被减数 n 字节压缩 BCD码高位,R1 指向减数 n 字节压缩 BCD码高位,R3=n;结果:差数 压缩 BCD码放入 R0 指向的 n 个字节中;使用 A,R0

7、,R1 ,R3,影响 CY,CY=1 结果为正;CY=0 结果为负;=CSUB1: MOV A,R0ADD A,R3DEC AMOV R0,AMOV A,R1ADD A,R3DEC AMOV R1,ASETB CCSUL1: CLR AADDC A,#99HSUBB A,R1ADD A,R0DA AMOV R0,ADEC R0DEC R1DJNZ R3,CSUL1RET;=;=;多字节 十进制乘法子程序 CMUL;入口:RO 指向被乘数 n 字节压缩 BCD码高位,R1 指向乘数 n 字节压缩 BCD码高位,R3=n;结果: 积数压缩 BCD码放入 R0 指向的 2n 个字节中;使用 A,R0

8、 ,R1 ,R2,R3,R6,R7,影响 CY;=CMUL: MOV A,R3MOV R6,AADD A,R3MOV R2,AMOV A,R1ADD A,R3DEC AMOV R1,AMOV A,R0ADD A,R3MOV R0,ACLR ACMUL1: MOV R0,AINC R0DJNZ R6,CMUL1DEC R0MOV A,R2MOV R6,ACMUL2: CLR ACMUL3: XCH A,R0SWAP AXCHD A,R0XCH A,R0DEC R0DJNZ R2,CMUL3MOV R7,AJZ CMUL7CMUL4: MOV A,R3MOV R2,AADD A,R3ADD A,R

9、0MOV R0,ACLR CCMUL5: MOV A,R0ADDC A,R1DA AMOV R0,ADEC R0DEC R1DJNZ R2,CMUL5MOV A,R3MOV R2,ACMUL6: CLR AADDC A,R0DA AMOV R0,ADEC R0DJNZ R2,CMUL6MOV A,R1ADD A,R3MOV R1,ADJNZ R7,CMUL4CMUL7: MOV A,R3ADD A,R3MOV R2,AADD A,R0MOV R0,ADJNZ R6,CMUL2RET;=;=;多字节 十进制除法子程序 CDIV;入口:RO 指向被除数 2n 字节压缩 BCD码高位,R1 指向除数

10、 n 字节压缩 BCD码高位,R3=n;结果:商数 压缩 BCD码放入 R0+n 指向的 n 个字节中,余数压缩 BCD码放入 R0 指向的 n 个字节中;使用 A,R0 ,R1 ,R2,R3,R4,R6,R7,影响 CY,CY=1 结果溢出;=CDIV: MOV A,R3ADD A,R3MOV R7,ADEC R0DEC R1CDIV1: MOV A,R3ADD A,R3MOV R2,AADD A,R0MOV R0,ACLR ACDIV2: XCH A,R0SWAP AXCHD A,R0XCH A,R0DEC R0DJNZ R2,CDIV2MOV R4,ACDIV3: MOV A,R3MOV R6,AADD A,R0MOV R0,AADD A,R3XCH A,R0INC R0 XCH A,R0MOV A,R1ADD A,R3MOV R1,ASETB CCDIV4: CLR AADDC A,#99HSUBB A,R1ADD A,R0DA AMOV R0,ADEC R0DEC R1DJ

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号