arm指令

更新时间:2023-08-03 06:39:13 阅读: 评论:0

一、加减法指令:
1、MOV(move):数据传送指令
2、MVN(move negative):数据取反传送指令
3、ADD(add):加法
4、ADC(add with carry):带进位加法
5、SUB(subtract):减法
6、RSB(rever subtract):反向减法
7、SBC(subtract with carry):带借位的减法                            SBC{<cond>}{S}    <Rd>,<Rn>,<op2> ;Rd=Rn-op2-carry
8、RSC(rever subtract with carry):带借位的反向减法                        RSC{<cond>}{S}    <Rd>,<Rn>,<op3> ;Rd= op3-Rn-!carry
二、逻辑指令
1、AND:逻辑与
2、ORR(logical or):逻辑或
3、EOR(exclusive or):逻辑异或
4、BIC(bit clear):位清零
5、CLZ(count leading zeros):位计数。
CLZ{<cond>}        <Rd>,<Rm>;计算存储在Rm寄存器中各位为0的总个数。
三、乘法指令
1、MUL(multiply):32位乘法
2、MLA(multiply accumulate):32位乘加
MLA{<cond>}    {S}    <Rd>,<Rn>,<op2>,<op3>;
3、SMULL(signed multiplication long):64位有符号数乘法
SMULL  {<cond>}{S}    <Rdl>,<Rdh>,<Rn>,<op2>;
Rdh Rdl=Rn×op2,结果的高32位存入Rdh,低32位存入Rdl。
4、SMLAL(signed multiply accumulate long): 64位有符号数乘加
SMLAL  {<cond>}{S}    <Rdl>,<Rdh>,<Rn>,<op2>;
什么是粗纤维食物Rdh Rdl=Rn×op2+Rdh Rdl
5、UMULL(unsigned multiplication long): 64位无符号数乘法(同SMULL,下同SMLAL)
6、UMLAL(unsigned multiplication long): 64位无符号数乘加
贬谪的读音
四、跳转指令
1、B/BL:跳转指令
熏陶的读音
2、BLX(branch with link and exchange):带返回和状态切换的跳转指令
3、BX:带状态切换的跳转指令
五、内存数据加载指令
1、LDR:字数据读取指令
存在先于本质
LDR    {<cond>}    <Rd>,<addressing_mode>;将addressing_mode中的字读取到Rd中。
2、STR:字数据写入指令。
STR    {<cond>}    <Rd>,<addressing_mode>;将Rd中32位的字中的字写入到指定单元中。
三实三严3、LDM:
(1)批量内存字数据读取。
LDM    {<cond>}    <addressing_mode>    <Rn>{!},<registers>;
将数据从指定内存单元中读取到指令中的寄存器列表的各寄存器中,主要用于块数据的读
取、数据栈操作以及从子程序中返回的操作。
(2)用户模式的批量内存字数据加载。
LDM    {<cond>}    <addressing_mode>    <Rn>,<Registers_without_pc>^;
将数据从指定的内存单元中读取到指令寄存器列表中的各寄存器中,主要用于块数据的读取,数据栈操作以及从子程序中返回的操作,但PC寄存器不能包含在LDM指令的寄存器列表中。
(3)带状态寄存器的批量内存数据加载
LDM    {<cond>}    <addressing_mode>    <Rn>{!},<registers_and_pc>^;
将数据从指定的内存单元中读取到指令中寄存器列表的各寄存器中,同时将当前处理器模式对应的SPSR寄存器内容复制到CPSR中。
4、STM:
厨师工资(1)批量内存字数据写入。
STM    {<cond>}    <addressing_mode>    <Rn>{!},<registers>;
将指令中寄存器列表中的各寄存器数值写入到连续的内存单元中,主要用于块数据的写入、数据栈操作,以及进入子程序时保存相关的寄存器的操作。
(2)用户模式的批量内存字数据写入
STM    {<cond>}    <addressing_mode>    <Rn>,<registers>^;
将指令中寄存器列表中的各寄存器数值(用户模式对应的寄存器)写入到连续的内存单元中,主要用于块数据的写入、数据栈操作,以及进入子程序时保存相关的寄存器的操作。
六、CSPR数据传输指令
1、MRS(move PSR to general-purpo register):程序状态寄存器到通用寄存器的数据传达指令。
2、MSR(move to status register from arm register):通用寄存器到程序状态寄存器的数据传送指令。
七、数据交换指令
1、SWP:字数据交换。
韩系女生头像2、SWPB:字节数据交换
形象英文
八、比较指令
1、CMP(compare):比较
2、CMN(Compare Negative):反相比较
3、TST(test):测试
就是测试某些Rn的某些位是否置位
4、TEQ(test equivalence):测试等值指令
就是测试两个值是否相等

本文发布于:2023-08-03 06:39:13,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1127392.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:寄存器   数据   指令   内存   操作   写入   读音   符号
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图