system.asm

来自「基于SPMC75F2413A的LCD驱动程式序, 使用128X64的液晶模块,包」· 汇编 代码 · 共 81 行

ASM
81
字号
.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 + =
减小字号Ctrl + -
显示快捷键?