arm-linux

http://armboard.taobao.com/

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2011年9月20日

摘要: 我们知道ARM CPU中有一条被广泛使用的指令LDR,它主要是用来从存储器(确切地说是地址空间)中装载数据到通用寄存器。但不论是ARMASM还是GNU ARM AS,都提供了一条与之同名的伪指令LDR,而在实际中使用该伪指令的情况也较多,那他们有什么不同呢?下面我谈谈我的理解。 由于我使用GNU工具链,所以以下的内容都以GNU AS的ARM语法为准。 LDR伪指令的语法形式如下: LDR <reg>, = <constant-expression> 这个常量表达式<constant-expression>中可以包含Label(在ARM汇编中Label会在连接 阅读全文
posted @ 2011-09-20 09:47 arm-linux 阅读(2008) 评论(0) 推荐(0) 编辑

摘要: ARM7TDMI(-S)具有32位ARM指令集和16位Thumb指令集。ARM指令集效率高,但是代码密度高Thumb指令集具有较高的代码密度,却仍然保持着ARM的大多数性能上的优势,它是ARM的子集。所有的ARM置零都是可以条件执行的,而Thumb置零仅有一条指令具备条件执行的功能。ARM和Thumb程序可以相互调用,相互之间状态切换开销几乎为零。首先我们来看一下分类:一、数据处理指令操作数寻址方式 1、立即数寻址方式 2、寄存器寻址方式 3、寄存器移位寻址方式二、存储器访问指令操作数寻址方式 1、寄存器间接寻址 2、基址变址寻址 3、相对寻址 4、多寄存器寻址(块拷贝寻址) 5、堆栈寻址下面 阅读全文
posted @ 2011-09-20 09:46 arm-linux 阅读(2161) 评论(1) 推荐(0) 编辑