ARM第二课总结
来源:互联网 发布:python编辑器 知乎 编辑:程序博客网 时间:2024/05/17 08:12
一、ARM指令集,六类指令
1、跳转指令:
B 跳转
BL 带返回的跳转,将下一条指令的地址保存到R14(LR)中
BLX 带返回且切换状态的跳转
BX 不带反回,但是有状态切换的跳转
条件:
EQ Z置位 相等
NE Z清零 不相等
CS C置位 无符号数大于或等于
CC C清零 无符号数小于
MI N置位 负数
PL N清零 正数或零
VS V置位 溢出
VC V 清零 未溢出
HI C置位Z清零 无符号数大于
LS C清零Z置位 无符号数小于或等于
GE N等于V 带符号数大于或等于
LT N不等于v 带符号数小于
GT Z清零且N等于V 带符号数大于
LE Z置位或N不等于V 带符号数小于或等于
AL 忽略 无条件执行
2、数据处理指令
a、数据传送
MOV Rd ,#1
MVN Rd ,#1
MUL Rd,Rm,Rs
b、逻辑运算
ANDS
ANDEQ
ORR
EOR
BIC R0,R0,#%1011 位清除:取反,相与
c、比较指令
CMP
CMPGT(条件)
d、移位指令
LSL 逻辑左
LSR 逻辑右
ASR 算数左
ROR 算数右
RRX 扩展循环左 加入cpsr中的C位
3、状态寄存器指令
MRS R1,CPSR 读取
MSR SPSR R1 存储
4、存储器访问
LDR 加载(条件)
STR 存储(条件)
5、交换指令
SWP R0,R0,[R1] R0与[R1]内容交换
6、软终端指令
SWI 隐式显示
伪指令:
GBLA,GBLL,GBLS:声明全局变量。
LCLA,LCLL,LCLS:声明局部变量。
SETA,SETL,SETS:给变量赋值。
RLIST:为通用寄存器列表定义名称
LDR 区别于 指令LDR 加=为伪指令,加#为指令
ADR 转化为ADD 或者SUB
ADRL 转化为俩次ADD或者SUB
NOP 延时,CPU执行MOV R0,R0
- ARM第二课总结
- ARM第二节课
- 《reinforcement learning:an introduction》第二章《Multi-arm Bandits》总结
- SAP第二课总结
- Linux第二课总结
- Linux总结第二课
- Java 第二节课 总结
- 计算机网络第二节课总结
- 第二课:ARM底层开发笔记之裸机程序开发
- 第二枚ARM汇编程序分析
- arm,gpio开发第二天
- ARM微处理器第二弹:寄存器
- CSDN培训第二节课课后总结
- 我的csdn第二课总结
- Oracle第二节课总结 函数
- 11级csdn java第二课总结
- 管理者的角色修炼-第二课总结
- 信息安全第二节课总结
- IPC::SharedMem
- C++模板学习
- 35岁以前把下面十件事做好
- stat,fstat,lstat与struct stat结构的结合使用
- .jar文件参与android源码编译
- ARM第二课总结
- hdu1162 Eddy's picture (prim最小生成树)
- ASP.NET4.5Web API及非同步程序开发系列(2)
- 【13】String类_获取,判断,转换,替换,切割...
- 20120927-笔试
- TCP回射程序
- IOS开发之路-C 学习笔记7.17
- 数字电路学习
- surfaceview setDisplay时IllegalArgumentException: The surface has been released