http://blog.chinaunix.net/u2/87718/showart_1683402.html
GNU ARM 汇编指令简介
第一部分 Linux下ARM汇编语法尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针、设置页表、操作 ARM的协处理器等。初始化完成后就可以跳转到C代码执行。需要注意的是,GNU的汇编器遵循AT&T的汇编语法,可以从GNU的站点(www.gnu.org)上下载有关规范。
一. Linux汇编行结构
任何汇编行都是如下结构:...
我最近刚学GNU arm 汇编, 但是遇到了很多问题,这个很难缠,麻烦大虾们帮助:
我写了一个程序叫test.s
.section .text
.globl _start
_start:
mov r0, #1
mov r1, #2
add r2, r0, r1
exit:
swi 0x11
使用
arm-linux-as -o test.o test.s
arm-linux-ld -o test test.o
生成test可执行文件,但是放在目标板里运行却报告illegal instruction ,我把前面的指令都注释掉了,只留下swi 0x11,仍然报告illegal instruction ,我...
by
zxz430
-
嵌入式开发
-
2009-02-27 15:22:54 阅读(2891) 回复(11)
我最近刚学GNU arm 汇编, 但是遇到了很多问题,这个很难缠,麻烦大虾们帮助:
我写了一个程序叫test.s
.section .text
.globl _start
_start:
mov r0, #1
mov r1, #2
add r2, r0, r1
exit:
swi 0x11
使用
arm-linux-as -o test.o test.s
arm-linux-ld -o test test.o
生成test可执行文件,但是放在目标板里运行却报告illegal instruction ,我感觉没有指令错,况且指令也不多
,请大虾们指教这是什么原因?谢谢
1 ARM GNU 汇编伪指令简介
(1)abort
.abort 停止汇编
(2)align
.align absexpr1,absexpr2
以某种对齐方式,在未使用的存储区域填充值. 第一个值表示对齐方式,4, 8,16或
32. 第二个表达式值表示填充的值
(3)if...else...endif
.if
.else
.endif: 支持条件预编译
(4)include
.include "file": 包含指定的头文件, 可以把一个汇编常量定义放在头文件中
(5)comm
.comm symb...
任何汇编行都是如下结构:
[:] [} @ comment
[:] [} @ 注释
NU ARM 汇编中,任何以冒号结尾的都被认为是一个标签,而不一定非要在一行的开始。下面是一个简单的例子,这段汇编程序定义了一个"add"的函数,该函数返回两个参数的和:
.section .text, “x”
.global add @ give the symbol add external linkage
add:
ADD r0, r0, r1 @ add input arguments
MOV pc, lr @ return from subroutine
@ end of program
GNU ARM汇编伪指令...
第一部分 Linux下ARM汇编语法尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针、设置页表、操作 ARM的协处理器等。初始化完成后就可以跳转到C代码执行。需要注意的是,GNU的汇编器遵循AT&T的汇编语法,可以从GNU的站点(www.gnu.org)上下载有关规范。
一. Linux汇编行结构
任何汇编行都是如下结构:
[:] [} @ comment
[:] [} @ 注释
Linux ARM 汇编中,任何以冒号结尾的标识符都被...
第一部分
Linux下ARM汇编语法
尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针、设置页表、操作
ARM的协处理器等。初始化完成后就可以跳转到C代码执行。需要注意的是,GNU的汇编器遵循AT&T的汇编语法,可以从GNU的站点(www.gnu.org)上下载有关规范。
一. Linux汇编行结构
任何汇编行都是如下结构:
[:] [} @ comment
[:] [} @ 注释
Linux ARM 汇编中,任何以冒号结...
第一部分 Linux下ARM汇编语法尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针、设置页表、操作 ARM的协处理器等。初始化完成后就可以跳转到C代码执行。需要注意的是,GNU的汇编器遵循AT&T的汇编语法,可以从GNU的站点(www.gnu.org)上下载有关规范。
一. Linux汇编行结构
任何汇编行都是如下结构:
[:] [} @ comment
[:] [} @ 注释
Linux ARM 汇编中,任何以冒号结尾的标识符都被...
ARM GCC Inline Assembler Cookbook
About this document
The GNU C compiler for ARM RISC processors offers, to embed assembly language code into C programs. This cool feature may be used for manually optimizing time critical parts of the software or to use specific processor instruction, which are not available in the C language.
It's assumed, that you are familiar with writing ARM assembler prog...