ARM
c山水
电子人
展开
-
ARM汇编指令
ARM汇编指令ARM处理器的指令集可以分为跳转指令、数据处理指令、程序状态寄存器(PSR)处理指令、加载/存储指令、协处理器指令和异常产生指令6大指令。一、跳转指令跳转指令用于实现程序流程的跳转,在ARM程序中有以下两种方法可以实现程序流程的跳转。Ⅰ.使用专门的跳转指令;Ⅱ.直接向程序计数器PC写入跳转地址值,通过向程序计数器PC写入跳转地址值,可以实现在4GB的地址空间中的任转载 2015-08-27 16:19:53 · 331 阅读 · 0 评论 -
arm汇编中ldr、str、stm、ldm的用法
这里比较下容易混淆的四条指令,已经在这4条指令的混淆上花费了很多精力,现在做个小结,LDR,STR,LDM,STM这四条指令,关于LDM和STM的说明,见另外一个说明文件,说明了这两个文件用于栈操作时的注意事项。(1)LDR:L表示LOAD,LOAD的含义应该理解为:Load from memory into register。下面这条语句就说明的很清楚:LDR R1, [转载 2015-09-08 10:40:22 · 9493 阅读 · 2 评论 -
修改CPSR是的四个域
CPSR有4个8位区域:标志域(F)、状态域(S)、扩展域(X)、控制域(C)MSR - Load specified fields of the CPSR or SPSR with an immediate constant, or from the contents of a general-purpose register.Syntax:MSR{cond} _, #immed转载 2015-09-07 17:18:12 · 613 阅读 · 0 评论 -
arm中ldr与mov指令的区别
ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。比如想把数据从内存中某处读取到寄存器中,只能使用ldr比如:ldr r0, 0x12345678就是把0x12345678这个地址中的值存放到r0中。而mov不能干这个活,mov只能在寄存器之间移动数据,或者把立即数移动到寄存器中,这个和x86这种CISC架构的芯片区别最大的地转载 2015-09-04 12:13:55 · 460 阅读 · 0 评论 -
ADS下用JLIK调试配置
需要加入的文件:2440init.s2440slib.s2440lib.c2440addr.h2440lib.h2440slib.hoption.hdef.h在DebugRel Settings中设置Language Settings->ARM Assembler ARM C Compiler ARM C++ Comp转载 2015-11-10 15:02:52 · 490 阅读 · 0 评论 -
汇编调用c函数为什么要设置栈
一.栈的整体作用 (1)保存现场/上下文 (2)传递参数:汇编代码调用c函数时,需传递参数 (3)保存临时变量:包括函数的非静态局部变量以及编译器自动生成的其他临时变量。 二.为什么汇编代码调用c函数需要设置栈 之前看了很多关于uboot的分析,其中就有说要为C语言的运行,准备好栈。而自己在Uboot的start.S汇编代码中,关于系统初始化,也看到有栈指针初始化这个动作。但是转载 2015-10-12 17:14:07 · 314 阅读 · 0 评论 -
arm体系中c语言的数据类型
1、unsigned long == unsigned long int ,2者是等价的,均是无符号整形变量,在ARM9中占4个字节,int可省略不写2、const是一个C语言的关键字,它限定一个变量不允许被改变。3、局部变量,可与全局变量重名,但其会屏蔽全局变量,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量,一个文件可声明多个局部变量,互不影响4、volatile转载 2015-10-12 22:25:06 · 2134 阅读 · 0 评论