新闻中心

ARM·指令集

作者: 时间:2016-11-24 来源:网络 收藏
(冯诺依曼结构就是程序存储指令存储器和数据存储器结合在一起的结构)
(RISC和CISC相对,reduced 和 complex)
1)单寄存器加载


LDR/STR指令用于对内存变量的访问、内存缓冲区数据的访问、查表、外表部件的控制操作等。
若使用LDR指令加载数据到PC寄存器,则实现程序跳转功能 。
*LDR和STR——字和无符号字节加载/存储指令
LDR/STR指令寻址非常灵活,它由两部分组成,其中一部分为一个基址寄存器,可以为人一个通过寄存器;另一个部分为地址偏移寄存器。
①立即数 LDR R1, [R0,#12] R1<-[R0+0x12]
②寄存器 LDR R1, [R0, R2] R1<-[R0+R2]
③寄存器及移位常数 LDR R1, [R0,R2,LSL#2]; R1<-[R0+R2*4]
*LDR/STR——半字和有符号字节加载/存储指令

2)批量数据加载/存储指令

*cond:执行的条件
*模式:控制地址的增长方式,一共8种模式
*!:表示在操作结束后,将最后的地址写回Rn中
reglist:表示寄存器列表,可以包含多个寄存器{R1,R2,R4-R9}
^:允许在用户模式或系统模式下使用

例子。

【堆栈操作】
*堆栈指针(SP)总是指向栈顶
递增堆栈:向高地址方向生长
递减堆栈:向低地址方向生长
满堆栈:堆栈指针向最后压入堆栈的有效数据项
空堆栈:堆栈指针指针向下一个要放入数据的空位置

【关于最后的疑问:LDR/STR LDM/STM为什么加载的方式相反,是不是这课写错了】
【数据交换指令】

【异常产生指令】

SWI 0 调用0中断
SWI 12 调用12中断
上一页 1 2 下一页

关键词:ARM指令

评论


技术专区

关闭