Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1485185
  • 博文数量: 181
  • 博客积分: 3308
  • 博客等级: 中校
  • 技术积分: 2227
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-03 12:03
个人简介

我是zoro

文章分类

全部博文(181)

文章存档

2015年(1)

2013年(35)

2012年(39)

2011年(50)

2010年(56)

分类: LINUX

2010-11-03 14:04:00

多数据传送指令 (LDM, STM)
   load (LDM) store (STM) 当前可访问寄存器的任意子集
使用
   堆栈: maintaining full or empty stacks which can grow up or down memory
   上下文切换: 保存或重新存储工作寄存器
   块拷贝:在主存储器中移动大数据块
寻址
   Pre/Post indexing
   Auto increment or decrement
   回写到基址寄存器Write back the base register
  
   多寄存器Load/Store指令会增加中断的延迟,因为ARM不会打断正在执行的指令去响应中断,而必须等到指令执行完成;
   一般编译器将提供一个选项以控制Load/Store指令可以传送的最大寄存器数目,以限制最大中断延迟。
寻址模式
描述
起始地址
结束地址
Rn!
IA
执行后增加
Rn
Rn+4*N-4
Rn+4*N
IB
执行前增加
Rn+4
Rn+4*N
Rn+4*N
DA
执行后减少
Rn-4*N+4
Rn
Rn-4*N
DB
执行前减少
Rn-4*N
Rn-4
Rn-4*N
 
 
寻址方式
说明
pop
=LDM
push
=STM
FA
递增满
LDMFA
LDMDA
STMFA
STMIB
FD
递减满
LDMFD
LDMIA
STMFD
STMDB
EA
递增空
LDMEA
LDMDB
STMEA
STMIA
ED
递减空
LDMED
LDMIB
STMED
STMDA
阅读(1612) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~