随笔分类 -  ARM汇编

摘要:GNU内联汇编 内联汇编 即在C中直接使用汇编语句进行编程,使程序可以在C程序中实现C语言不能完成的一些工作,例如,在下面几种情况中必须使用内联汇编或嵌入型汇编 1. 程序中使用饱和算术运算(Saturating Arithmetic) 2. 程序需要对协处理器进行操作 3. 在C程序中完成对程序状 阅读全文
posted @ 2016-11-15 07:39 Abnor 编辑
摘要:ARM汇编程序结构 一个ARM程序可以被划分为多个代码段和数据段,在汇编的时候这些段会被形成一个可执行文件 子程序调用 ARM汇编中,子程序的调用一般通过 指令实现,在程序中,执行 即可完成子程序的调用。该指令在执行时完成如下操作: 1. 将子程序的返回地址保存在LR 2. 将PC指向子程序的入口 阅读全文
posted @ 2016-11-14 21:54 Abnor 编辑
摘要:符号定义伪指令 ,`.local .set .equ` .global 使得符号对连接器可见,变为对整个工程可用的全局变量 .local 表示符号对外部不可见,只对本文件可见 .set 给一个全局变量或局部变量赋值,和 的功能一样 .equ 和 一样,只是格式不同 数据定义伪指令 ,`.short 阅读全文
posted @ 2016-11-14 21:24 Abnor 编辑
摘要:语法格式 表示是可选的部分,``表示是必要的部分 条件码 大部分ARM指令都支持条件执行,即满足某些条件的时候执行当前指令,同时,还配合有 位用来指示当前指令是否会映像CPSR相应的位。 | | | | | |: |: |: |: | |EQ| Equal| 相等| Z=1 | |NE| Noequ 阅读全文
posted @ 2016-10-12 08:44 Abnor 编辑
摘要:ARM支持9种寻址方式:立即数寻址,寄存器寻址,寄存器偏移寻址,寄存器间接寻址,基址变址寻址,多寄存器寻址,相对寻址,堆栈寻址,块拷贝寻址。 立即数寻址 将数据直接存放的指令中发给CPU,首先由于ARM的一条指令占了32bit,而操作码本身也要占据一些位,所以留给立即数的位数肯定不到32bit,其次 阅读全文
posted @ 2016-10-12 08:37 Abnor 编辑
摘要:工作模式_ufisaus |USR|FRQ|IRQ|SVC|ABT|UND|SYS| |: |: |: |: |: |: |: | |R0||||||| |R1||||||| |R2||||||| |R3||||||| |R4||||||| |R5||||||| |R6||||||| |R7|||| 阅读全文
posted @ 2016-10-12 08:35 Abnor 编辑