📄 bcd.asm
字号:
//============================================================
// 文件名称: BCD.asm
// 功能描述: 二进制转BCD码
// 维护记录: 2004-4-25 v1.0
// 2006-9-10 v1.1
// 维护说明: 支持0~65535数字转换
//============================================================
//=============================================================
// 语法格式: unsigned long int BCD(unsigned int Binary)
// 实现功能: 二进制转BCD码
// 参数: Binary - 需要转换的二进制数
// 返回值: 压缩格式存储的BCD码(使用两个字存储)
//=============================================================
.ram
.var BCD_ww,BCD_qw,BCD_bw;
.code
.public _BCD
_BCD:.proc
push r3,r4 to [sp]
r2=0
r3=0
r4=0
[BCD_ww] = r2
[BCD_bw] = r2
[BCD_qw] = r2
cmp r1,10000
jb F_BCD_Q
F_BCD_W:
r2 = [BCD_ww]
r2 += 1;
[BCD_ww] = r2;
r1 -= 10000
cmp r1, 10000
jae F_BCD_W
// cmp r1,1000
// jb F_BCD_B
F_BCD_Q:
cmp r1,1000
jb F_BCD_B
r2 = [BCD_qw]
r2 += 1
[BCD_qw]=r2
r1-=1000
cmp r1,1000
jae F_BCD_Q
F_BCD_B:
cmp r1,100
jb F_BCD_S
r2=[BCD_bw]
r2+=1
[BCD_bw]=r2
r1-=100
cmp r1,100
jae F_BCD_B
F_BCD_S:
cmp r1,10
jb F_BCD_G
r3+=1
r1-=10
cmp r1,10
jae F_BCD_S
F_BCD_G:
r4=r1
r1=0x0000
r1=r1 rol 4
r1=[BCD_qw]
r2=[BCD_bw]
r2=r2 ror 4
r1=r1 rol 4
r3=r3 ror 4
r1=r1 rol 4
r4=r4 ror 4
r1=r1 rol 4
r2 = [BCD_ww]
pop r3,r4 from [sp]
retf
.endp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -