⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 math.inc

📁 这个包里面包含了一个文件
💻 INC
📖 第 1 页 / 共 2 页
字号:
_math_d_22_a5:
     ret
     

;之六: 
/************************************************************************************/ 
/* 程序名称: 3字节除3字节子程序 
/* 引用名称: _math_d_33 
/* 描 述: 适用于EM78P153/156/447/451/458/468 
/************************************************ 
/* 作 者: bandy 
/* 日 期: 2007年8月18日 
/****************************************************/
public _math_d_33
/****************************************************/ 
/**************寄存器定义****************************/ 
/****************************************************/ 
;入口: 
math_d_33_r0==0x10   ;被除数高位;商高位 
math_d_33_r1==0x11   ;被除数中位;商中位 
math_d_33_r2==0x12   ;被除数低位;商低位 
math_d_33_r3==0x13   ;除数高位  
math_d_33_r4==0x14   ;除数中位 
math_d_33_r5==0x15   ;除数低位 
;出口: 
math_d_33_r6==0x16   ;扩展高位;余高位 
math_d_33_r7==0x17   ;扩展中位;余中位 
math_d_33_r8==0x18   ;扩展低位;余低位 
;出错标志: psw.c=1 
;正常标志: psw.c=0 
;-------------------------------------------------- 
;内部使用寄存器 

math_d_33_cr==0x1a   ;计数 
/***************************************************/ 
/*************寄存器定义结束************************/
/***************************************************/
_math_d_33:
     mov  math_d_33_r3,math_d_33_r3
     jbs  3,2
     jmp  _math_d_33_a0
     mov  math_d_33_r4,math_d_33_r4
     jbs  3,2
     jmp  _math_d_33_a0
     mov  math_d_33_r5,math_d_33_r5
     jbs  3,2
     jmp  _math_d_33_a0
     jmp  _math_d_33_a6
_math_d_33_a0:
     mov  a,@24
     mov  math_d_33_cr,a
     clr  math_d_33_r6
     clr  math_d_33_r7
     clr  math_d_33_r8
_math_d_33_a1:
     bc   3,0
     rlc  math_d_33_r2
     rlc  math_d_33_r1
     rlc  math_d_33_r0
     rlc  math_d_33_r8
     rlc  math_d_33_r7
     rlc  math_d_33_r6
     mov  a,math_d_33_r3
     sub  a,math_d_33_r6
     jbs  3,2
     jmp  _math_d_33_a2
     mov  a,math_d_33_r4
     sub  a,math_d_33_r7
     jbs  3,2
     jmp  _math_d_33_a2
     mov  a,math_d_33_r5
     sub  a,math_d_33_r8
_math_d_33_a2:
     jbs  3,0
     jmp  _math_d_33_a4
     mov  a,math_d_33_r5
     sub  math_d_33_r8,a
     mov  a,@0
     jbs  3,0
     mov  a,@1
     add  a,math_d_33_r4
     jbc  3,0
     jmp  _math_d_33_a3
     sub  math_d_33_r7,a
     mov  a,@0
     jbs  3,0
_math_d_33_a3:
     mov  a,@1
     add  a,math_d_33_r3
     sub  math_d_33_r6,a
     inc  math_d_33_r2
;     jbc  3,2
;     inc  math_d_33_r1
;     jbc  3,2
;     inc  math_d_33_r0
_math_d_33_a4:
     djz  math_d_33_cr
     jmp  _math_d_33_a1
     
     bc   3,0                ;四舍五入 
     rlc  math_d_33_r8
     rlc  math_d_33_r7
     rlc  math_d_33_r6
     mov  a,math_d_33_r3
     sub  a,math_d_33_r6
     jbs  3,2
     jmp  _math_d_33_a5
     mov  a,math_d_33_r4
     sub  a,math_d_33_r7
     jbs  3,2
     jmp  _math_d_33_a5
     mov  a,math_d_33_r5
     sub  a,math_d_33_r8
_math_d_33_a5:
     jbs  3,0
     jmp  _math_d_33_a6
     inc  math_d_33_r2
     jbc  3,2
     inc  math_d_33_r1
     jbc  3,2
     inc  math_d_33_r0  
_math_d_33_a6:
     ret

;之九: 
/************************************************************************************/ 
/* 程序名称: 1字节十六进制转换BCD子程序 
/* 引用名称: _math_bcd_1 
/* 描 述: 适用于EM78P153/156/447/451/458/468 
/************************************************ 
/* 作 者: bandy 
/* 日 期: 2007年8月18日 
/****************************************************/
public _math_bcd_1
/****************************************************/ 
/**************寄存器定义****************************/ 
/****************************************************/ 
;入口: 
math_bcd_1_r0==0x10   ;十六进制

;出口: 
math_bcd_1_r1==0x11   ;BCD高位
math_bcd_1_r2==0x12   ;BCD低位 
 
;出错标志: psw.c=1 
;正常标志: psw.c=0 
;-------------------------------------------------- 
;内部使用寄存器 

math_bcd_1_cr==0x1a   ;计数    

/***************************************************/ 
/*************寄存器定义结束************************/
/***************************************************/
_math_bcd_1:
     mov   a,@8
     mov   math_bcd_1_cr,a
     clr   math_bcd_1_r1
     clr   math_bcd_1_r2
_math_bcd_1_a0:    
     rlc   math_bcd_1_r0  
     mov   a,@0
     jbc   3,0
     mov   a,@1
     add   a,math_bcd_1_r2
     add   a,math_bcd_1_r2 
     daa
     mov   math_bcd_1_r2,a
     mov   a,@0
     jbc   3,0
     mov   a,@1
     add   a,math_bcd_1_r1
     add   a,math_bcd_1_r1      
     daa
     mov   math_bcd_1_r1,a
     djz   math_bcd_1_cr
     jmp   _math_bcd_1_a0
     ret
     
;之十: 
/************************************************************************************/ 
/* 程序名称: 2字节十六进制转换BCD子程序 
/* 引用名称: _math_bcd_2 
/* 描 述: 适用于EM78P153/156/447/451/458/468 
/************************************************ 
/* 作 者: bandy 
/* 日 期: 2007年8月18日 
/****************************************************/
public _math_bcd_2
/****************************************************/ 
/**************寄存器定义****************************/ 
/****************************************************/ 
;入口: 
math_bcd_2_r0==0x10   ;十六进制高位 
math_bcd_2_r1==0x11   ;十六进制低位 
;出口: 
math_bcd_2_r2==0x12   ;BCD高位 
math_bcd_2_r3==0x13   ;BCD中位  
math_bcd_2_r4==0x14   ;BCD低位 
;出错标志: psw.c=1 
;正常标志: psw.c=0 
;-------------------------------------------------- 
;内部使用寄存器 

math_bcd_2_cr==0x1a   ;计数    

/***************************************************/ 
/*************寄存器定义结束************************/
/***************************************************/
_math_bcd_2:
     mov   a,@16
     mov   math_bcd_2_cr,a
     clr   math_bcd_2_r2
     clr   math_bcd_2_r3
     clr   math_bcd_2_r4
_math_bcd_2_a0:    
     rlc   math_bcd_2_r1
     rlc   math_bcd_2_r0  
     mov   a,@0
     jbc   3,0
     mov   a,@1
     add   a,math_bcd_2_r4
     add   a,math_bcd_2_r4  
     daa
     mov   math_bcd_2_r4,a
     mov   a,@0
     jbc   3,0
     mov   a,@1
     add   a,math_bcd_2_r3
     add   a,math_bcd_2_r3      
     daa
     mov   math_bcd_2_r3,a
     mov   a,@0
     jbc   3,0
     mov   a,@1
     add   a,math_bcd_2_r2
     add   a,math_bcd_2_r2    
     daa
     mov   math_bcd_2_r2,a
     djz   math_bcd_2_cr
     jmp   _math_bcd_2_a0
     ret
     
     
     
;之十一: 
/************************************************************************************/ 
/* 程序名称: 3字节十六进制转换BCD子程序 
/* 引用名称: _math_bcd_3 
/* 描 述: 适用于EM78P153/156/447/451/458/468 
/************************************************ 
/* 作 者: bandy 
/* 日 期: 2007年8月18日 
/****************************************************/
public _math_bcd_3
/****************************************************/ 
/**************寄存器定义****************************/ 
/****************************************************/ 
;入口: 
math_bcd_3_r0==0x10   ;十六进制高位 
math_bcd_3_r1==0x11   ;十六进制中位 
math_bcd_3_r2==0x12   ;十六进制低位 
;出口: 

math_bcd_3_r3==0x13   ;BCD高位  
math_bcd_3_r4==0x14   ;BCD中位 
math_bcd_3_r5==0x15   ;BCD低位 
math_bcd_3_r6==0x16   ;BCD最低位 
;出错标志: psw.c=1 
;正常标志: psw.c=0 
;-------------------------------------------------- 
;内部使用寄存器 

math_bcd_3_cr==0x1a   ;计数    

/***************************************************/ 
/*************寄存器定义结束************************/
/***************************************************/
_math_bcd_3:
     mov   a,@24
     mov   math_bcd_3_cr,a
     clr   math_bcd_3_r3
     clr   math_bcd_3_r4
     clr   math_bcd_3_r5
     clr   math_bcd_3_r6
_math_bcd_3_a0:   
     rlc   math_bcd_3_r2 
     rlc   math_bcd_3_r1
     rlc   math_bcd_3_r0  
     mov   a,@0
     jbc   3,0
     mov   a,@1
     add   a,math_bcd_3_r6
     add   a,math_bcd_3_r6  
     daa
     mov   math_bcd_3_r6,a
     mov   a,@0
     jbc   3,0
     mov   a,@1
     add   a,math_bcd_3_r5
     add   a,math_bcd_3_r5      
     daa
     mov   math_bcd_3_r5,a
     mov   a,@0
     jbc   3,0
     mov   a,@1
     add   a,math_bcd_3_r4
     add   a,math_bcd_3_r4    
     daa
     mov   math_bcd_3_r4,a
     mov   a,@0
     jbc   3,0
     mov   a,@1
     add   a,math_bcd_3_r3
     add   a,math_bcd_3_r3    
     daa
     mov   math_bcd_3_r3,a
     djz   math_bcd_3_cr
     jmp   _math_bcd_3_a0
     ret

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -