|
/************************汇编程序如下*********************/
/+++++++实现的功能:
被除数:x
除数: y
商: z
运算公式:
z = x * 16383 / y ;
++++++++++++++++/
.globl _temp
.globl _z
.globl _x
.globl _y
.globl _x
.globl _DivideQ14
.text
Q14 .set 3FFFH
******************************************************
* FUNCTION DEF : _DivideQ14
******************************************************
_DivideQ14:
POPD *+ ;FP-2
SAR AR0,*+ ;FP-1
SAR AR1,* ;当前局部指针FP
LAR AR0,*+,AR1;
LACL #Q14
SACL _temp
LT _x
MPYU _temp
SACL _temp
LACL _temp
RPT #15
SUBC _y
SACL _z
MAR *,AR1
LAR AR0,*-
PSHD *
RET
/*****************C程序如下*****************************/
#include \"register.h\"
volatile long temp;
volatile int z;
int x,y;
extern int DivideQ14(int x,int y);
void main()
{
系统/变量初始化程序(省略)
while(1)
{
z = DivideQ14(5000,2500);
}
}
高人能不能帮我把C调汇编这部分搞定?
因为我只需要做这一个C调汇编程序,以前也不学汇编.对ARx的操作尤其发怵.
|
|