免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1039 | 回复: 0
打印 上一主题 下一主题

ARM汇编指令集 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-22 08:51 |只看该作者 |倒序浏览
变址寻址:(4k范围内有效)
前索引寻址  LDR   R0,[R1,#4]               R0 <-----[R1+4]
带自动索引的前索引寻址  LDR   R0,[R1,#4]!   R0 <-----[R1+4];R1 <-----R1+4
后索引寻址  LDR   R0,[R1],#4              R0 <-----[R1];R1<------ R1+4
基址加索引寻址  LDR   R0,[R1,R2]           R0 <-----[R1+R2]

条件执行指令:

一系列的指令都使用条件指令
 if (a==0) func(1);
 CMP      r0,#0

MOVEQ    r0,#1

BLEQ     func
置标志位,再使用不同的条件码
if (a==0) x=0;

if (a>0)  x=1;
 CMP      r0,#0

MOVEQ    r1,#0

MOVGT    r1,#1
使用条件比较指令
 if (a==4 || a==10) x=0;
 CMP      r0,#4

CMPNE    r0,#10

MOVEQ    r1,#0


IAR汇编伪指令:
1、文件包含:
$,INCLUDE
 
$ vecter.s        ;在当前源文件中包含另一个源文件vecter.s
INCLUDE vector.s
RESEG 段名,[:存储器类型][(NO)ROOT|(NO)REORDER][(对齐)]
该伪指令用与定义一个新的存储器段,汇编器对所有的其实地址分别初始化为0,从而在任何情况下都可以进行段和模式的切换,而不需要保存当前程序计数器PC的值。

AIC_SVR
对应于每个中断源的中断处理地址可以保存在寄存器AIC_SVR1到AIC_SVR31 (源向量寄存器
1到31)中。当处理器读AIC_IVR (中断向量寄存器),返回当前中断相关的写入AIC_SVR中值。
该特性提供了一种单指令处理当前中断的分支方法,由于 AIC_IVR 映射在绝对地址 0xFFFF
F100 处,因而 ARM 中断向量通过下面指令访问地址 0x0000 0018: 
LDR PC,[PC,# -&F20]
当处理器执行该指令时,将 AIC_IVR 读出值载入其程序计数器,然后对正确中断程序进行分支
处理。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP