⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testutils.inc

📁 gdb-6.8 Linux下的调试程序 最新版本
💻 INC
字号:
# r0-r3 are used as tmps, consider them call clobbered by these macros.# This uses the angel rom monitor calls.# ??? How do we use the \@ facility of .macros ???# @ is the comment char!	.macro mvi_h_gr reg, val	ldr \reg,[pc]	b . + 8	.word \val	.endm	.macro mvaddr_h_gr reg, addr	ldr \reg,[pc]	b . + 8	.word \addr	.endm	.macro start	.datafailmsg:	.asciz "fail\n"passmsg:	.asciz "pass\n"	.textdo_pass:	ldr r1, passmsg_addr	mov r0, #4	swi #0x123456	exit 0passmsg_addr:	.word passmsgdo_fail:	ldr r1, failmsg_addr	mov r0, #4	swi #0x123456	exit 1failmsg_addr:	.word failmsg	.global _start_start:	.endm# *** Other macros know pass/fail are 4 bytes in size!  Yuck.	.macro pass	b do_pass	.endm	.macro fail	b do_fail	.endm	.macro exit rc	# ??? This works with the ARMulator but maybe not others.	#mov r0, #\rc	#swi #1	# This seems to be portable (though it ignores rc).	mov r0,#0x18	mvi_h_gr r1, 0x20026	swi #0x123456	# If that returns, punt with a sigill.	stc 0,cr0,[r0]	.endm# Other macros know this only clobbers r0.# WARNING: It also clobbers the condition codes (FIXME).	.macro test_h_gr reg, val	mvaddr_h_gr r0, \val	cmp \reg, r0	beq . + 8	fail	.endm	.macro mvi_h_cnvz c, n, v, z	mov r0, #0	.if \c	orr r0, r0, #0x20000000	.endif	.if \n	orr r0, r0, #0x80000000	.endif	.if \v	orr r0, r0, #0x10000000	.endif	.if \z	orr r0, r0, #0x40000000	.endif	mrs r1, cpsr	bic r1, r1, #0xf0000000	orr r1, r1, r0	msr cpsr, r1	# ??? nops needed	.endm# ??? Preserve condition codes?	.macro test_h_cnvz c, n, v, z	mov r0, #0	.if \c	orr r0, r0, #0x20000000	.endif	.if \n	orr r0, r0, #0x80000000	.endif	.if \v	orr r0, r0, #0x10000000	.endif	.if \z	orr r0, r0, #0x40000000	.endif	mrs r1, cpsr	and r1, r1, #0xf0000000	cmp r0, r1	beq . + 8	fail	.endm

⌨️ 快捷键说明

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