【ARM】 《C 语言调用汇编子程序》 与 《汇编调用 C 语言程序》
发布日期:2021-05-13 21:43:22 浏览次数:19 分类:精选文章

本文共 1493 字,大约阅读时间需要 4 分钟。

������������1+2+3+���+(N-1)+N���������N>0���

������C���������������������������

C���������������

#define uint32 unsigned int
#define N 100
extern uint32 doadd(uint32 x, uint32 y); // ������������������
uint32 sum;
int main() {
uint32 i;
sum = 0;
for (i = 0; i <= N; i++) {
sum = doadd(sum, i);
}
while (1); // ������������������������
return 0;
}

���������������������

; ������������������������������uint32 doadd(uint32 x, uint32 y)
AREA ASMADD,CODE,READONLY
EXPORT doadd
doadd ADD R0, R0, R1
MOV PC, LR
END

������������������C������������

���������������

N       EQU 100                     ; ������������������
; ������������Adding������������
AREA Adding,CODE,READONLY
IMPORT MYADD ; ������C������������
ENTRY
MOV R0, #0 ; ���������sum
MOV R1, #0 ; ���������i
REPEAT
BL MYADD ; ������C������������������
ADD R1, R1, #1 ; ������1
CMP R1, #N ; ������������������N
BLE REPEAT ; ������������N���������������
LDR R2, =RESULT ; ������������������
STR R0, [R2] ; ���sum���������������������
HERE B HERE ; ������������������������
; ������������Dataspace������������
AREA Dataspace,DATA,READWRITE
RESULT DCD 0 ; ������������������
END

C������������������������������������������������������������

int MYADD(int x, int y) {
return x + y;
}
上一篇:【MAC】启动 ssh 服务 及 ssh 长时间不用自动断开解决
下一篇:【MAC】添加软连接 将 sublime 放入命令行中

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年04月20日 02时35分54秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章