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

📄 math.inc

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

;之一: 
/************************************************************************************/ 
/* 程序名称: 1字节乘1字节子程序 
/* 引用名称: _math_m_11 
/* 描 述: 适用于EM78P153/156/447/451/458/468 
/************************************************ 
/* 作 者: bandy 
/* 日 期: 2007年8月17日 
/****************************************************/ 
public _math_m_11 
/****************************************************/ 
/**************寄存器定义****************************/ 
/****************************************************/ 
;入口: 
math_m_11_r0 == 0x10 ;被乘数 
;
math_m_11_r1 == 0x11 ;乘数 
;出口: 
math_m_11_r2 == 0x12 ;高位乘积 
math_m_11_r3 == 0x13 ;低位乘积 
;出错标志: psw.c=1 
;正常标志: psw.c=0 
;-------------------------------------------------- 
;内部使用寄存器 
math_m_11_cr == 0x14    ;计数 
/***************************************************/ 
/*************寄存器定义结束************************/
/***************************************************/
 _math_m_11: 
     mov  a,@8 
     mov  math_m_11_cr,a 
     clr  math_m_11_r2 
     clr  math_m_11_r3 
_math_m_11_a0: 
     mov  a,math_m_11_r0 
     rrc  math_m_11_r1 
     jbc  3,0 
     add  math_m_11_r2,a 
     rrc  math_m_11_r2 
     rrc  math_m_11_r3 
     djz  math_m_11_cr 
     jmp  _math_m_11_a0 
     ret 
;============================================== 
;之二: 
/************************************************************************************/ 
/* 程序名称: 2字节乘1字节子程序 
/* 引用名称: _math_m_21 
/* 描 述: 适用于EM78P153/156/447/451/458/468 
/************************************************ 
/* 作 者: bandy 
/* 日 期: 2007年8月18日 
/****************************************************/ 
public _math_m_21 
/****************************************************/ 
/**************寄存器定义****************************/ 
/****************************************************/ 
;入口: 
math_m_21_r0 == 0x10 ; 高位被乘数 
math_m_21_r1 == 0x11 ; 低位被乘数 
;
math_m_21_r2 == 0x12 ; 乘数 
;出口:  
math_m_21_r3 == 0x13 ; 高位乘积 
math_m_21_r4 == 0x14 ; 中位乘积 
math_m_21_r5 == 0x15 ; 低位乘积 
;出错标志: psw.c=1 
;正常标志: psw.c=0 
;-------------------------------------------------- 
;内部使用寄存器 
math_m_21_cr == 0x1a   ;计数 
/***************************************************/ 
/*************寄存器定义结束************************/
/***************************************************/ 
_math_m_21:
     mov  a,@8 
     mov  math_m_21_cr,a 
     clr  math_m_21_r3 
     clr  math_m_21_r4
     clr  math_m_21_r5 
_math_m_21_a0: 
     rrc  math_m_21_r2
     jbs  3,0
     jmp  _math_m_21_a2
     mov  a,math_m_21_r1 
     add  math_m_21_r4,a 
     mov  a,@1 
     jbc  3,0 
     add  math_m_21_r3,a 
     jbc  3,0 
     jmp  _math_m_21_a1
     mov  a,math_m_21_r0 
     add  math_m_21_r3,a 
     jmp  _math_m_21_a2
_math_m_21_a1:
     mov  a,math_m_21_r0 
     mov  math_m_21_r3,a
_math_m_21_a2: 
     rrc  math_m_21_r3 
     rrc  math_m_21_r4
     rrc  math_m_21_r5   
     djz  math_m_21_cr 
     jmp  _math_m_21_a0
     ret
;============================================== 
;之三: 
/************************************************************************************/ 
/* 程序名称: 3字节乘2字节子程序 
/* 引用名称: _math_m_32 
/* 描 述: 适用于EM78P153/156/447/451/458/468 
/************************************************ 
/* 作 者: bandy 
/* 日 期: 2007年8月17日 
/****************************************************/ 
public _math_m_32 
/****************************************************/ 
/**************寄存器定义****************************/ 
/****************************************************/ 
;入口: 
math_m_32_r0 == 0x10 ; 高位被乘数 
math_m_32_r1 == 0x11 ; 低位被乘数 
math_m_32_r2 == 0x12 ;最低位被乘数 
;
math_m_32_r3 == 0x13 ; 乘数高位 
math_m_32_r4 == 0x14 ; 乘数低位 
;出口: 
math_m_32_r5 == 0x15 ;最高位乘积 
math_m_32_r6 == 0x16 ; 高位乘积 
math_m_32_r7 == 0x17 ; 中位乘积 
math_m_32_r8 == 0x18 ; 低位乘积 
math_m_32_r9 == 0x19 ;最低位乘积 
;出错标志: psw.c=1 
;正常标志: psw.c=0 
;-------------------------------------------------- 
;内部使用寄存器 
math_m_32_cr == 0x1a   ;计数 
/***************************************************/ 
/*************寄存器定义结束************************/
/***************************************************/ 
_math_m_32: 
     mov  a,@16 
     mov  math_m_32_cr,a 
     clr  math_m_32_r5 
     clr  math_m_32_r6 
     clr  math_m_32_r7 
     clr  math_m_32_r8 
     clr  math_m_32_r9 
_math_m_32_a0: 
     rrc  math_m_32_r3 
     rrc  math_m_32_r4 
     jbs  3,0 
     jmp  _math_m_32_a3 
     mov  a,math_m_32_r2 
     add  math_m_32_r7,a 
     mov  a,@1 
     jbc  3,0 
     add  math_m_32_r6,a 
     jbc  3,0 
     add  math_m_32_r5,a 
     jbc  3,0 
     jmp  _math_m_32_a1 
     mov  a,math_m_32_r1 
     add  math_m_32_r6,a 
     mov  a,@1 
     jbc  3,0 
     add  math_m_32_r5,a 
     jbc  3,0 
     jmp  _math_m_32_a2 
     mov  a,math_m_32_r0 
     add  math_m_32_r5,a 
     jmp  _math_m_32_a3 
_math_m_32_a1: 
     mov  a,math_m_32_r1 
     mov  math_m_32_r6,a 
_math_m_32_a2: 
     mov  a,math_m_32_r0 
     mov  math_m_32_r5,a 
_math_m_32_a3: 
     rrc  math_m_32_r5 
     rrc  math_m_32_r6 
     rrc  math_m_32_r7 
     rrc  math_m_32_r8 
     rrc  math_m_32_r9 
     djz  math_m_32_cr 
     jmp  _math_m_32_a0 
     ret 
;============================================== 
;之四: 
/************************************************************************************/ 
/* 程序名称: 1字节除1字节子程序 
/* 引用名称: _math_d_11 
/* 描 述: 适用于EM78P153/156/447/451/458/468 
/************************************************ 
/* 作 者: bandy 
/* 日 期: 2007年8月17日 
/****************************************************/
public _math_d_11
/****************************************************/ 
/**************寄存器定义****************************/ 
/****************************************************/ 
;入口: 
math_d_11_r0==0x10   ;被除数;商 
math_d_11_r1==0x11   ;除数 
;出口: 
math_d_11_r2==0x12   ;扩展;余 
;出错标志: psw.c=1 
;正常标志: psw.c=0 
;-------------------------------------------------- 
;内部使用寄存器 

math_d_11_cr==0x13   ;计数 
/***************************************************/ 
/*************寄存器定义结束************************/
/***************************************************/
_math_d_11:
     mov   math_d_11_r1,math_d_11_r1       
     jbc   3,2           
     jmp   _math_d_11_a2                                    
     mov   a,@8          
     mov   math_d_11_cr, a           
     clr   math_d_11_r2  
_math_d_11_a0:           
     bc    3,0           
     rlc   math_d_11_r0             
     rlc   math_d_11_r2              
     mov   a,math_d_11_r1           
     sub   a,math_d_11_r2           
     jbs   3,0           
     jmp   _math_d_11_a1             
     mov   math_d_11_r2, a           
     inc   math_d_11_r0              
_math_d_11_a1:
     djz   math_d_11_cr              
     jmp   _math_d_11_a0 
;     bc    3,0                      ;四舍五入 
;     rrca  math_d_11_r1
;     sub   a,math_d_11_r2
;     jbc   3,0
;     inc   math_d_11_r0           
_math_d_11_a2:
     ret
     
     
;之五: 
/************************************************************************************/ 
/* 程序名称: 2字节除2字节子程序 
/* 引用名称: _math_d_22 
/* 描 述: 适用于EM78P153/156/447/451/458/468 
/************************************************ 
/* 作 者: bandy 
/* 日 期: 2007年8月18日 
/****************************************************/
public _math_d_22
/****************************************************/ 
/**************寄存器定义****************************/ 
/****************************************************/ 
;入口: 
math_d_22_r0==0x10   ;被除数高位;商高位 
math_d_22_r1==0x11   ;被除数低位;商低位 
math_d_22_r2==0x12   ;除数高位 
math_d_22_r3==0x13   ;除数低位 
;出口: 
math_d_22_r4==0x14   ;扩展高位;余高位 
math_d_22_r5==0x15   ;扩展低位;余低位 
;出错标志: psw.c=1 
;正常标志: psw.c=0 
;-------------------------------------------------- 
;内部使用寄存器 

math_d_22_cr==0x1a   ;计数 
/***************************************************/ 
/*************寄存器定义结束************************/
/***************************************************/
_math_d_22:
     mov  math_d_22_r2,math_d_22_r2
     jbs  3,2
     jmp  _math_d_22_a0
     mov  math_d_22_r3,math_d_22_r3
     jbs  3,2
     jmp  _math_d_22_a0
     jmp  _math_d_22_a5
_math_d_22_a0:
     mov  a,@16
     mov  math_d_22_cr,a
     clr  math_d_22_r4
     clr  math_d_22_r5
_math_d_22_a1:
     bc   3,0
     rlc  math_d_22_r1
     rlc  math_d_22_r0
     rlc  math_d_22_r5
     rlc  math_d_22_r4
     mov  a,math_d_22_r3
     sub  a,math_d_22_r5
     jbs  3,0
     bs   math_d_22_cr,7
     mov  a,math_d_22_r2
     sub  a,math_d_22_r4
     jbs  3,0
     jmp  _math_d_22_a4
     jbs  3,2
     jmp  _math_d_22_a2
     jbc  math_d_22_cr,7
     jmp  _math_d_22_a4
     jmp  _math_d_22_a3
_math_d_22_a2:
     add  a,@0xff
_math_d_22_a3:
     mov  math_d_22_r4,a
     mov  a,math_d_22_r3
     sub  math_d_22_r5,a
     inc  math_d_22_r1
;     jbc  3,2
;     inc  math_d_22_r0
_math_d_22_a4:
     bc   math_d_22_cr,7
     djz  math_d_22_cr
     jmp  _math_d_22_a1

⌨️ 快捷键说明

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