汇编语法及相关指令

server/2025/2/1 15:29:27/

1.汇编指令的基本格式:

<opcode>{<cond>}{s} <Rd>, <Rn>, <shifter_operand>

opcode:指令的功能码,用来表示当前指令的作用

cond:条件码,需要在指令执行之前先判断条件受否满足,不满足则指令不执行

s:影响CPSR条件位

Rd:目标寄存器

Rn:第一操作寄存器

2.常见指令:

数据搬移指令:

        mov{条件码} 目标寄存器 操作数 

        将操作数搬移到目标寄存器中

        mvn{条件码} 目标寄存器 操作数 

        将操作数按位取反后结果搬移到目标寄存器中

数据移位指令:

        逻辑左移: lsl{条件码} 目标寄存器,第一操作寄存器,第二操作数

                将第一操作寄存器的数据左移第二操作数位数,结果保存到目标寄存器

        逻辑右移: lsr{条件码} 目标寄存器,第一操作寄存器,第二操作数

                 将第一操作寄存器的数据右移第二操作数位数,结果保存到目标寄存器

        循环右移 :ror{条件码} 目标寄存器,第一操作寄存器,第二操作数

                  将第一操作寄存器的数据循环右移第二操作数位数,结果保存到目标寄存器

位运算指令

        and{条件码} 目标寄存器,第一操作寄存器,第二操作数

                与运算 与0清零,与1不变

        orr{条件码} 目标寄存器,第一操作寄存器,第二操作数            

                或运算 有1位1,全0为0 

        eor{条件码} 目标寄存器,第一操作寄存器,第二操作数

                异或运算 相同为0,不同为1

        bic{条件码} 目标寄存器,第一操作寄存器,第二操作数

                按位清零运算

         mvn 按位取反

 算术运算指令:

        add{条件码}{s} 目标寄存器,第一操作寄存器,第二操作数 

                目标寄存器=第一操作寄存器+第二操作数

        考虑cpsr条件位的加法指令 adc{条件码}{s} 目标寄存器,第一操作寄存器,第二操作数

                目标寄存器=第一操作寄存器+第二操作数+cpsr寄存器c位的值

        减法指令 sub{条件码}{s} 目标寄存器,第一操作寄存器,第二操作数

                目标寄存器=第一操作寄存器-第二操作数 4.

        考虑cpsr条件位的减法指令 SBC{条件码}{s} 目标寄存器,第一操作寄存器,第二操作数

                目标寄存器=第一操作寄存器-第二操作数-cpsr寄存器c位的取反值

        乘法运算 mul{条件码}{s} 目标寄存器,第一操作寄存器,第二操作数 

                目标寄存器=第一操作寄存器*第二操作数

比较指令:

        cmp 第一操作寄存器,第二操作数 

                将第一操作数和第二操作寄存器进行比较

        tst 目标寄存器,#(0X1<<N) 

                这个指令用来判断目标寄存器的第N位是否为0

       TEQ 目标寄存器,第二操作数 

                判断目标寄存器的值是否和第二操作数相等

跳转指令:

        b 标签 

                跳转到指定的标签下,跳转后LR寄存器不保存程序返回地址

        bl 标签 

                跳转到指定的标签下,跳转后LR寄存器保存程序返回地址

        


http://www.ppmy.cn/server/164096.html

相关文章

Qt调用FFmpeg库实时播放UDP组播视频流

基于以下参考链接&#xff0c;通过改进实现实时播放UDP组播视频流 https://blog.csdn.net/u012532263/article/details/102736700 源码在windows&#xff08;qt-opensource-windows-x86-5.12.9.exe&#xff09;、ubuntu20.04.6(x64)(qt-opensource-linux-x64-5.12.12.run)、以…

代发考试战报:1月22号 1月23号 CCDE考试通过

还有几个人考的也考过了&#xff0c;但是只有俩位考生提供了成绩单截图&#xff0c;有的考生反馈遇到6-7个新题&#xff0c;有的考生反馈遇到将近20个新题&#xff0c;差距比较大&#xff0c;最终结果都一样&#xff0c;都是通过了 #华为#HCIP#题库#考试#思科#CCNP#CCNA#HCIA#通…

【JavaEE进阶】应用分层

目录 &#x1f38b;序言 &#x1f343;什么是应用分层 &#x1f38d;为什么需要应用分层 &#x1f340;如何分层(三层架构) &#x1f384;MVC和三层架构的区别和联系 &#x1f333;什么是高内聚低耦合 &#x1f38b;序言 通过上⾯的练习,我们学习了SpringMVC简单功能的开…

基于物联网设计的疫苗冷链物流监测系统

一、前言 1.1 项目开发背景 随着全球经济的发展和物流行业的不断创新&#xff0c;疫苗和生物制品的运输要求变得越来越高。尤其是疫苗的冷链物流&#xff0c;温度、湿度等环境因素的控制直接关系到疫苗的质量和效力&#xff0c;因此高效、可靠的冷链监控系统显得尤为重要。冷…

基于Django的Boss直聘IT岗位可视化分析系统的设计与实现

【Django】基于Django的Boss直聘IT岗位可视化分析系统的设计与实现&#xff08;完整系统源码开发笔记详细部署教程&#xff09;✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 该系统采用Python作为主要开发语言&#xff0c;利用Django这一高效、安全的W…

【人工智能】基于Python的机器翻译系统,从RNN到Transformer的演进与实现

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 机器翻译(Machine Translation, MT)作为自然语言处理领域的重要应用之一,近年来受到了广泛的关注。在本篇文章中,我们将详细探讨如何使…

【AI论文】VideoAuteur:迈向长叙事视频

摘要&#xff1a;近期的视频生成模型在制作持续数秒的高质量视频片段方面已展现出令人鼓舞的成果。然而&#xff0c;这些模型在生成能传达清晰且富有信息量的长序列时面临挑战&#xff0c;限制了它们支持连贯叙事的能力。在本文中&#xff0c;我们提出了一个大规模烹饪视频数据…

[NOIP2007]矩阵取数游戏

点我写题 题目描述 帅帅经常跟同学玩一个矩阵取数游戏&#xff1a;对于一个给定的n*m的矩阵&#xff0c;矩阵中的每个元素aij均为非负整数。游戏规则如下&#xff1a; 1.每次取数时须从每行各取走一个元素&#xff0c;共n个。m次后取完矩阵所有元素&#xff1b; 2.每次取走的…