序
本文介绍arm架构32位neon汇编优化,适合于任何基础。
温馨提醒:嵌入式设备(即arm架构的板子)在编译时,最好加上 -fsigned-char 因为嵌入式设备默认类型为unsigned char类型,非char 类型。此外在编译arm汇编优化代码时,编译选项需要加上-c 。
1. 初识arm语法
arm纯汇编语法分armasm语法 和 gnu asm语法, 本文基于gnu asm语法讨论。
1.1 常用语法
(1)定义一个函数
.text
.align 4
.global name
.type %function
name:
FUNCTION STATEMENT
bx lr
(2) 定义一个宏代码
.macro name arg1, arg2, arg3
ldr r0, \arg1
vstl.u32 \arg2\()[0], [r0]
.endm
(3) 打印宏代码中的变量
.macro name arg1, arg2, arg3
ldr r0, \arg1
vstl.u32 \arg2\()[0], [r0]
.altmacro
.warning "%(\arg1, \arg2, \arg3)"
.noaltmacro
.endm