ARM指令集

发布时间:2024-07-19
arm指令的基本格式如下:
其中<>号内的项是必须的,{}号内的项是可选的。各项的说明如下:
arm指令集——第2个操作数
arm指令的基本格式如下:
灵活的使用第2个操作数“operand2”能够提高代码效率。它有如下的形式:
(1)#immed_8r——常数表达式;
(2)rm——寄存器方式;
(3)rm,shift——寄存器移位方式;
关于“#immed_8r——常数表达式”
该常数必须对应8位位图,即一个8位的常数通过循环右移偶数位得到。
关于“rm——寄存器方式”:
在寄存器方式下,操作数即为寄存器的数值。
例如:
sub r1,r1,r2
mov pc,r0
关于“rm,shift——寄存器移位方式”:将寄存器的移位结果作为操作数,但rm值保持不变,移位方法如下:
关于“rm,shift——寄存器移位方式”:
例如:
add r1,r1,r1,lsl #3 ;r1=r1+r1*8=9r1
sub r1,r1,r2,lsr r3 ;r1=r1-(r2/2r3)
关于“arm指令集——条件码”;arm指令的基本格式如下:
使用条件码“cond”可以实现高效的逻辑操作,提高代码效率。
所有的arm指令都可以条件执行,而thumb指令只有b(跳转)指令具有条件执行 功能。如果指令不标明条件代码,将默认为无条件(al)执行。
关于“arm指令集——条件码”:
关于“arm指令集——存储器访问指令”:arm处理器是典型的risc处理器,对存储器的访问只能使用加载和存储指令实现。arm处理器是冯·诺依曼存储结构,程序空间、ram空间及i/o映射空间统一编址,除对ram操作以外,对外围io、程序数据的访问均要通过加载/存储指令进行。
存储器访问指令分为“单寄存器操作指令”和“多寄存器操作指令”。
ldr/str指令用于对内存变量的访问、内存缓冲区数据的访问、查表、外围部件的控制操作等。若使用ldr指令加载数据到pc寄存器,则实现程序跳转功能,这样也就实现了程序散转。
所有单寄存器加载/存储指令可分为“字和无符号字节加载存储指令”和“半字和有符号字节加载存储指令。
下面讲讲,ldr和str——字和无符号字节加载/存储指令:ldr指令用于从内存中读取单一字或字节数据存入寄存器中,str指令用于将寄存器中的单一字或字节数据保存到内存。指令格式如下:
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。
上一个:月季花的修剪方法
下一个:工业用橡塑保温板厂家规格表

VSE流量计的优点和缺点
美国 ST-2600 卧式投影仪,S-T卧式投影仪
BP2-612、BP2-610、BP2-608、BP2-604频敏变阻器
米顿罗计量泵的原理特性
流量积算控制仪/迅鹏WPR22HC-IKR
教你用Composer管理相依性
锅炉房丙烷气体泄漏探测器
债务人转移财产不还钱如何处理
脉冲除尘器运作原理是什么?
德国DI-SORIC电容式传感器的优点与缺点