ARM汇编程序特点: l 所有运算处理都是发生通用寄存器(一般是R0~R14)的之中.所有存储器空间(如C语言变量的本质就是一个存储器空间上的几个BYTE).的值的处理,都是要传送到通用寄存器来完成.因此代码中大量看到LDR,STR指令来传送值. l ARM汇编语句中.当前语句很多时候要隐含的使用上 ...
分类:
其他好文 时间:
2016-03-24 16:11:21
阅读次数:
165
ARM伪指令 在ARM汇编语言程序中里,有一些特殊指令助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令,他们所完成的操作称为伪操作。伪指令在元程序中的作用是为完成汇编程序作各种准备工作,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成。 伪指令本身并
分类:
其他好文 时间:
2016-03-21 13:43:14
阅读次数:
177
GCC编译器支持直接在C或者C++代码中,嵌入ARM汇编代码。其基本格式非常简单,大致如下: __asm__ [__volatile__] ( assembler template : [output operand list] /* optional */ : [input operand lis
分类:
编程语言 时间:
2016-02-24 18:59:00
阅读次数:
192
11.汇编代码简单操作 使用汇编的原因很简单,就是汇编代码的高效。在机器启动的时候,利用汇编的高效,对硬件进行初始化,为加载内核,提供条件。 目前常用的ARM汇编指令有两种: *ARM标准汇编:适用于ARM公司的汇编器,适合在Windows平台下使用。 *GNU汇编:使用与GNU交叉编译工具链中的汇...
分类:
其他好文 时间:
2016-02-14 10:20:00
阅读次数:
256
几乎所有的ARM指令都可以包含一个可选的条件码,句法中以{cond}来标识。可用的条件码如下面所示。几乎所有的ARM数据处理指令均可以根据执行结果来选择是否更新条件码标志,即在指令中包含后缀S。条件玛助记符标志含义0000EQZ置位相等0001NEZ清零不相等0010CSC置位无符号数大于或等于.....
分类:
其他好文 时间:
2015-12-24 16:28:54
阅读次数:
152
函数调用的细节实现这个问题当时感觉答得还可以,不过很多细节记不清晰了。所以下面反汇编一段小程序,进行分析,因为我比较熟悉的是arm汇编,所以我选择了一台安装了交叉工具链的ubuntu,而没有使用之前的centos。所以可能画风会有些不同。下图是我写了一个简单的程序和makefile。程序中是由mai...
分类:
其他好文 时间:
2015-12-13 21:48:10
阅读次数:
129
为什么需要多寄存器访问指令?ldr/str每周期只能访问4字节内存,如果需要批量读取、写入内存时太慢,解决方案是stm/ld举例(uboot start.S 537行) stmia sp, {r0 - r12}将r0存入sp指向的内存处(假设为0x30001000);然后地址+4(即指向0x3000...
分类:
其他好文 时间:
2015-11-27 19:36:47
阅读次数:
117
协处理器cp15操作指令:mcr & mrc?mrc用于读取CP15中的寄存器?mcr用于写入CP15中的寄存器什么是协处理器??SoC内部另一处理核心,协助主CPU实现某些功能,被主CPU调用执行一定任务。?ARM设计上支持多达16个协处理器,但是一般SoC只实现其中的CP15.(cp:copro...
分类:
其他好文 时间:
2015-11-27 19:36:40
阅读次数:
138
(汇编)指令是CPU机器指令的助记符,经过编译过会得到一串0011组成的机器码,可以由CPU读取执行。(汇编)伪指令本质不是指令(只是和指令一起写在代码中),它是编译器环境提供的,目的是用来指导编译过程,经过编译后伪指令最终不会生成机器码。两种不同风格的ARM指令--ARM官方的ARM汇编风格:指令...
分类:
其他好文 时间:
2015-11-23 23:33:12
阅读次数:
128
特殊功能寄存器与外设绑定,通用寄存器是与CPU绑定。 ARM是RISC架构 常用ARM汇编指令只有二三十条 ARM是低功耗CPU ARM的架构非常适合单片机、嵌入式、尤其是物联网领域;而服务器等高性能领域目前主导还是Intel 大部分ARM都是32位架构,现在少数有64位,早期好像还有16位的。 ....
分类:
其他好文 时间:
2015-11-15 17:40:46
阅读次数:
148