嵌入式与ARM体系结构
知识回顾
ARM体系结构概述
了解ARM结构的特点
了解ARM系列微处理器
掌握ARM处理器的模式
掌握ARM存储器用途及结构
3
嵌入式ARM指令系统
第
章
本章目标
了解ARM指令系统的特点
掌握ARM指令的寻址方式及指令
了解Thumb指令系统
ARM指令系统
存储器访问指令
ARM指令集——存储器访问指令
ARM处理器是Load(从内存加载到CPU)/Store(从CPU存储到内存)型的,即它对数据的操作是通过将数据从存储器(内存)加载到(CPU)片内寄存器中进行处理,处理完成后的结果经过寄存器存回到存储器中,以加快对片外存储器进行数据处理的执行速度.
存储器访问指令分为单寄存器操作指令,多寄存器操作指令和寄存器和存储器交换指令。
ARM指令系统
助记符
说明
操作
条件码位置
LDR Rd,addressing
加载字数据(32bit)
Rd←[addressing],addressing索引
LDR{cond}
LDRB Rd,addressing
加载无符号字节数据
Rd←[addressing],addressing索引
LDR{cond}B
LDRT Rd,addressing
以用户模式加载字数据
Rd←[addressing],addressing索引
LDR{cond}T
LDRBT Rd, addressing
以用户模式加载无符号字节数据
Rd←[addressing],addressing索引
LDR{cond}BT
LDRH Rd, addressing
加载无符号半字数据
Rd←[addressing],addressing索引
LDR{cond}H
LDRSB Rd, addressing
加载有符号字节数据
Rd←[addressing],addressing索引
LDR{cond}SB
LDRSH Rd, addressing
加载有符号半字数据
Rd←[addressing],addressing索引
LDR{cond}SH
ARM存储器访问指令——单寄存器加载(LDR)
ARM指令系统
助记符
说明
操作
条件码位置
STR Rd, addressing
存储字数据
[addressing]←Rd,
addressing索引
STR{cond}
STRB Rd,addressing
存储字节数据
[addressing]←Rd,
addressing索引
STR{cond}B
STRT Rd,addressing
以用户模式存储字数据
[addressing]←Rd,
addressing索引
STR{cond}T
STRBT Rd,addressing
以用户模式存储字节数据
[addressing]←Rd,
addressing索引
STR{cond}BT
STRH Rd,addressing
存储半字数据
[addressing] ←Rd,
addressing索引
STR{cond}H
ARM存储器访问指令——单寄存器存储(STR)
所有单寄存器加载/存储指令可分为“字和无符号字节加载存储指令”和“半字和有符号字节加载存储指令。
ARM指令系统
LDR和STR——①字和无符号字节加载/存储指令
LDR指令用于从内存中读取单一字或字节数据存入寄存器中,STR指令用于将寄存器中的单一字或字节数据保存到内存。指令格式如下:
ARM存储器访问指令——单寄存器加载/存储
LDR{cond}{T} Rd,<地址> ;将指定地址上的字数据读入Rd
STR{cond}{T} Rd,<地址> ;将Rd中的字数据存入指定地址
LDR{cond}B{T} Rd,<地址> ;将指定地址上的字节数据读入Rd
STR{cond}B{T} Rd,<地址> ;将Rd中的字节数据存入指定地址
其中,T为可选后缀。若指令有T,那么即使处理器是在特权模式下,存储系统也将访问看成是在用户模式下进行的。T在用户模式下无效,不能与前索引偏移一起使用T。
ARM指令系统
ARM存储器访问指令——单寄存器加载/存储
LDR和STR——①字和无符号字节加载/存储指令编码
指令执行的条件码
I为0时,偏移量为12位立即数,为1时,偏移量为寄存器移位
P表示前/后变址
U表示加/减
B为1表示字节访问,为0表示字访问
W表示回写
为指令的寻址方式
Rd为源/目标寄存器
Rn为基址寄存器
L用于区别加载(L为1)或存储(L为0)
ARM指令系
存储器访问指令 来自淘豆网m.daumloan.com转载请标明出处.