📄 system.asm
字号:
.INCLUDE Spmc75_regs.inc
.RAM
.VAR BIN_BCD_Temp1
.CODE
//****************************************************************************************************
// 系统初始化程序 System_Init()
// 设计者: 牟联树
// 描 述: 系统初始化,根据需要更改,主要是时钟和I/O的初始化,还有一些系统模块的初始化
// 日 期: 2003.11.22
// 版本号: 1.0
//****************************************************************************************************
//BIN to BCD (uint)
.PUBLIC _BIN_BCD
_BIN_BCD: push r2,r5 to [sp]
r2 = 0;
r3 = 0;
[BIN_BCD_Temp1] = r3
r4 = 16;
//十进制加法调整
//******************************************************************************************
BIN_BCDa: r3 = [BIN_BCD_Temp1]
r2 = r3
r5 = r3&0x000f
r3&= 0x000f
r1+=r1
r5+= r3,Carry
cmp r5,0x0009
jbe BIN_BCDb
r5+=0x0006
BIN_BCDb: r3 = [BIN_BCD_Temp1]
r3&= 0xfff0
r3+=r5
[BIN_BCD_Temp1] = r3
r5 = r2
r5&= 0x00f0
r3 = [BIN_BCD_Temp1]
r3&= 0x00f0
r5+=r3
cmp r5,0x0090
jbe BIN_BCDc
r5+=0x0060
BIN_BCDc: r3 = [BIN_BCD_Temp1]
r3&= 0xff0f
r3+=r5
[BIN_BCD_Temp1] = r3
r5 = r2
r5&= 0x0f00
r3 = [BIN_BCD_Temp1]
r3&= 0x0f00
r5+=r3
cmp r5,0x0900
jbe BIN_BCDd
r5+=0x0600
BIN_BCDd: r3 = [BIN_BCD_Temp1]
r3&= 0xf0ff
r3+=r5
[BIN_BCD_Temp1] = r3
r5 = r2
r5&= 0xf000
r3 = [BIN_BCD_Temp1]
r3&= 0xf000
r5+=r3
jcc BIN_BCDt
jmp BIN_BCDy
BIN_BCDt: cmp r5,0x9000
jbe BIN_BCDe
BIN_BCDy: r5+=0x6000
BIN_BCDe: r3 = [BIN_BCD_Temp1];
r3&= 0x0fff
r3+=r5
[BIN_BCD_Temp1] = r3
//******************************************************************************************
BIN_BCDl: r4-= 1
jnz BIN_BCDx
r1 = [BIN_BCD_Temp1]
pop r2,r5 from [sp]
retf
BIN_BCDx: goto BIN_BCDa
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -