![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ARM
文章平均质量分 60
feixiaku
这个作者很懒,什么都没留下…
展开
-
ARM汇编的SWI指令软中断
从下面的一个ARM 汇编小程序要弄懂的以下三个问题:1).在ARM状态转到THUNB状态和BX的应用2).汇编的架构3).SWI指令的使用 AREA ADDREG,CODE,READONLY ENTRYMAIN ADR r0,ThunbProg + 1 ;(为什么要加1呢?因为BX转载 2012-12-21 13:36:44 · 5743 阅读 · 0 评论 -
MOV MVN 范围问题
1. MOV/MVN 可以直接装载一些特定范围的32位值到寄存器中,这些值包括: (1) 8位常量,即0--255 (2) 8位常量右移偶数位 (3) MVN可以处理(1)(2)中值的按位取反值 如果MOV/MVN指令中给出的立即数常量不在上述范围内,则汇编器会报错。 2. LDR Rd,=字面数值常量 可以装载任转载 2013-01-11 17:14:45 · 1847 阅读 · 0 评论 -
Scatter文件的编写及分析
今天拿了被同事扔一边的ARM培训资料翻阅,读至scatter一节,发现写得甚是精辟。之前看的很多国人写得文章,未免有简单问题复杂化之嫌。而ARM的RVCT手册又偏冗长,不易让人立刻看到重点。今归纳如下:scatter基本点:1. 编译后输出的映像文件中各段是首尾相连的,中间没有空闲的区域,它们的先后关系是根据链接时参数的先后次序决定的 armlinker -file1.o file2.转载 2013-01-10 11:12:58 · 777 阅读 · 0 评论 -
ARM汇编中ldr与adr的区别
ldr r0, _start adr r0, _start ldr r0, =_start nop mov pc, lr_start: nop 编译的时候设置 RO 为 0x0c008000↓↓↓↓↓↓↓↓↓↓↓转载 2013-01-07 14:16:08 · 429 阅读 · 0 评论 -
ARM汇编伪指令介绍
在 ARM 汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令,他们所完成的操作称为伪操作。伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成。 在 ARM 的汇编程序中,有如下几种伪指令:符号定义伪指令、数据定义伪指令、汇编控制转载 2013-01-07 09:41:54 · 470 阅读 · 0 评论 -
编译MAD时出错
cc1: error: unrecognized command line option “-fforce-mem”在我编译安装audacity的时候出现下面的错误cc1: error: unrecognized command line option “-fforce-mem”其实这个错误是编译安装libmad时候引起的,audacity包含libmad解决方式是:原创 2012-12-22 10:18:42 · 1906 阅读 · 0 评论 -
arm处理器异常处理-swi
本文转载自:http://blog.csdn.net/lizhiguo0532/article/details/5922639非常感谢原作者,受益匪浅!ARM处理器共有7中运行模式: 用户模式(usr) -- 正常程序执行模式 |--转载 2012-12-21 14:31:49 · 788 阅读 · 0 评论 -
LR寄存器
看下面这个ARM汇编吧BL NEXT ;跳转到子程序......... ;NEXT处执行NEXT..........MOV PC,LR ;从子程序返回转载 2012-12-21 14:22:54 · 583 阅读 · 0 评论 -
关于ARM的中断服务程序
##1,这个 2440test里面的中断写的向量有些隐蔽,兜了很多个圈,也难怪这么难理解,下面 就对这个东西抽丝剥茧,看清楚这究竟是一个怎么样的过程。 中断向量 b HandlerIRQ ;handler for IRQ interrupt 很自然,因为所有的单片机都是那样,中断向量一般放在开头,用过单片机的人都会很熟悉 那就不多说了。转载 2012-12-22 20:06:17 · 3683 阅读 · 0 评论 -
keil4编译SWI报错-启动代码相关
报错如下:报错原因:在启动代码(s3c2440.s)中有判断语句IF.....解决方法:原创 2012-12-21 17:22:09 · 664 阅读 · 0 评论 -
ARM MVN
mvn:与mov指令用法差不多,唯一的区别是:它赋值的时候,先按位取反 eg1: mvn r0,0xa0000007 执行结果:r0=0x5ffffff8 eg2: mvn r0,#4执行结果:r0=-5 过程分析:先对4转换成2进制(00000100),取反(11111011),求其补码,因为转载 2013-01-11 16:39:27 · 3346 阅读 · 0 评论