我的任务是在ARM汇编语言中重新创建一个C函数。此函数接受高精度整数对象,并使用二进制加法将它们相加。
该函数有3个参数,它们是struct BigInt_T类型变量的指针:
int BigInt_add(BigInt_T oAddend1, BigInt_T oAddend2, BigInt_T oSum)
BigInt_T有两个结构成员:
int iLength;
/* The number of used digits in the BigInt object */
unsigned int auiDigits[MAX_DIGITS];
/* The digits comprising the BigInt object */
我知道这些参数的地址将作为寄存器0 - 2传递到汇编函数中,但是我在尝试访问每个BigInt_T参数中的struct成员时遇到了麻烦。
在BigInt_add的C版本中,访问这些变量显然是直截了当的:
oAddend1->iLength;
oAddend1->auiDigits[i];
任何人都可以了解如何在ARM组装中完成此操作吗?