流沙团
ARM测试demo
2018-8-27 流沙团


demo1: 子程序,调用C函数






	AREA MfArm,CODE,READONLY
ENTRY
EXPORT main
IMPORT strcmp

big
DCB "hello world",0
small
DCB "hello world",0

main
MOV R0,#1
MOV R1,#2

BL ADD_SUM
MOV R3,R0

ADR R0,big
ADR R1,small
BL strcmp
mov R0,#0

B stop


ADD_SUM
ADD R0,R0,R1
BX LR

stop
END


















demo2:  C语言调用 ARM汇编



C代码:



#include<stdio.h>
#include<string.h>

extern void* _memcpy(void* dest,void* src, size_t size);
int main(void)
{
char dest[100]={0};
char* src = "www.gyarmy.com";
_memcpy(dest,src,strlen(src)+1);

return 0;
}







ARM代码:







;_memcpy
AREA Mfcode,CODE,READONLY
EXPORT _memcpy

_memcpy
STMFD SP!,{R4,LR}
mov r3,r0
mov r7,r1

copy
CMP r2,#0
BLE exit
LDRB r4,[r7]
STRB r4,[r3]
ADDS r7,r7,#1
ADDS r3,r3,#1
SUBS R2,R2,#1
BEQ exit
B copy

exit
LDMFD SP!,{r4,PC}
END







demo3

发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容