test.c

来自「这个代码是用gcc编译axd调试的程序的例子,为初学者提供一个事例,同时也可以用」· C语言 代码 · 共 75 行

C
75
字号
#include <test.h>

usr_int()
{
	;
}

asm("
	.globl	_irq

_irq:

	/* ?僕僗僞戅旔 */
	STMFD	r13!,{r0-r12,r14}
	/* SPSR save*/
	/* SPSR 傪僙乕僽偡傞傑偱僽?乕僋嬛巭 */
	MRS	r0,spsr
	STMFD	r13!,{r0}
	bl	usr_int	/* ?傝?傒??僾?僌?? */

	/* SPSR ?婣丂偙偙偐傜僽?乕僋傗僗僥僢僾嬛巭 */
	LDMFD	r13!,{r0}
	MSR	spsr,r0

	/* ?僕僗僞?婣 */
	LDMFD	r13!,{r0-r12,r14}

	/* ?傝?傒?婣 */
        SUBS  pc, lr, #4
        
.globl	_abt
.globl	_fiq
.globl	_swi
.globl	_und

Noentry:
_abt:
_fiq:
_swi:
_und:
	b	Noentry
");

asm("
.globl	invalidate_d_cache

invalidate_d_cache:
bic		r2, r0, #31
add		r0, r0, r1
bic		r0, r0, #31

cmp		r2, r0
bxhi	lr
Loop_invalidate_d_cache:
mcr p15, 0, r2, c7, c6, 1

add		r2, r2, #32
cmp		r2, r0
bxhi	lr
b		Loop_invalidate_d_cache
");



void main()
{
int a;
int b;
int c;
a=10;
b=20;
printf("a+b=%d",(a+b));
print();
}

⌨️ 快捷键说明

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