ARM汇编指令集——跳转指令、内存传输指令、软中断产生指令、协处理器指令、伪指令、伪操作(如何从底层直接操纵CPU)

2023-11-06

一、跳转指令

:完成程序跳转,实质就是对PC操作(赋值),b/bl跳转是短跳转,跳转范围:±32MB。
在这里插入图片描述

_start:
	 mov r0, #1
    mov r1, #2
    mov r3, #3
    b func              @; b跳转,不带返回值
     mov r4, #4

func:
    mov r5, #5
    mov r6, #6
    .end

底层现象:
在这里插入图片描述
当代码执行至第四行,直接跳转至func:
当func中代码执完毕后,直接结束,b跳转不带返回值,因素跳过代码不会被再执行!

_start:
 mov r0, #1
    mov r1, #2
    mov r3, #3
     bl func              @; bl跳转前,保存返回地址到lr
    mov r4, #4

func:
    mov r5, #5
    mov r6, #6
    mov pc, lr
    
       .end

底层现象:
在这里插入图片描述
当bl跳转前,会保存返回地址到lr。
在这里插入图片描述
之前所跳过指令也会继续执行。

二、内存传输指令

:对内存的读写操作
(1)单寄存器传输指令:ldr/str
内存地址寻址:前索引、后索引、自动索引
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ARM汇编指令集——跳转指令、内存传输指令、软中断产生指令、协处理器指令、伪指令、伪操作(如何从底层直接操纵CPU) 的相关文章

随机推荐

  • PyTorch搭建LSTM实现时间序列预测(负荷预测)

    目录 I 前言 II 数据处理 III LSTM模型 IV 训练 V 测试 VI 源码及数据 I 前言 在上一篇文章深入理解PyTorch中LSTM的输入和输出 从input输入到Linear输出 中 我详细地解释了如何利用PyTorch来
  • qt中复制文件的功能

    1 利用qt来复制文件 首先新建个工程文件 拖入按钮 复制文件 2 需要引入的头文件如下 include
  • 六月学习记录

    六月学习记录 6 1 Android消息传递之Handler消息机制 four articles http www cnblogs com whoislcj p 5590615 html 6 2 代码审查工具phabricator 6 4
  • 7 Linux 内核移植

    一 编译 ST 的 Linux 系统 1 压缩源码 首先先下载 ST 官方源码 之前章节已经下载过了 直接输入以下命令 cd linux atk mpl stm32mp1 openstlinux 5 4 dunfell mp1 20 06
  • pycharm 2023.1.2 去掉版本控制

    pycharm 2023 1 2 去掉版本控制
  • 优秀程序员应该具备的12种能力

    1 编程语言能力 不用多说 作为合格的计算机程序员 精通一门语言是必须的 这种精通 不是说看了一本编程宝典 抄了几个程序就能说精通的 要靠长时间的积累 2 编码能力 我曾经看很多程序员写的代码 在同一个jsp或者java源文件里 出现了三种
  • WinForm控件Chart的图表类型

    将就看 后期再加目录导航2020 10 23 折线图 折线图通常使用一条线来连接一系列不同的数据点 这样的直线是直线 样条曲线或阶梯 折线图更简单 因此还可以使您可视化多个系列而不会像条形图那样重叠 以下是折线图的不同类型 折线图 折线图使
  • C\C++各种变量存放区域(代码、数据、堆、栈)

    C C 各种变量存放区域 代码 数据 堆 栈 文章目录 C C 各种变量存放区域 代码 数据 堆 栈 变量 数据 变量 数据存放区域 练习 请说明下面的指针分别指向什么位置 BSS Block Started by Symbol 区 为什么
  • numpy实现卷积两种方法

    暂时针对二维卷积 方法1 按定义计算 def numpy conv inputs myfilter h ori w ori inputs shape h k w k myfilter shape h new w new h ori h k
  • 如何控制小程序的tabBar的显示和隐藏

    1 使用wx hideTabBar 方法隐藏tabBar 2 使用wx showTabBar 方法显示tabBar 参考文档
  • 适配器模式代码示例

    package com example shipeiqi public interface ThreeElectricOutlet 用来刻画三相插座 public abstract void connectElectricCurrent p
  • maven-metadata.xml使用

    最近在开发过程中 发现工程中的一些包有问题 主要分为以下两种 1 最新包 版本号未变 只是被更新了 少了一个方法 2 jar包被更新了 但是无法更新最新的包下来 首先先确定一下更新包会导致更新哪些文件 下面都以a 1 0 1 snapsho
  • 学习笔记:机器学习之支持向量机(一、最大间隔算法)

    活动地址 CSDN21天学习挑战赛 1 简介 支持向量机也是一种二分类模型 它是通过在特征空间中建立间隔最大的分类器 这是有别于感知机模型的一点 支持向量机可分为线性可分支持向量机 线性支持向量机 非线性支持向量机 2 函数间隔 几何间隔
  • node后台快速开发框架

    任何可以用 JavaScript 来写的应用 最终都将用 JavaScript 来写 node js是用JS语言编写的 JaveScript已经是世界上最流行的语言之一 用它可以实现任何功能需求 无论是后台开发 前端 App 桌面应用程序
  • 华为OD机试 C++ 最佳植树距离

    题目 小明得到了一项任务 在一个沙地里种树 不过 有些地方不能种树 只能选特定的位置来种 为了让树之间的空间尽可能大 从而更好地防沙 你要帮小明决定每棵树应该种在哪里 举个例子 如果合适的种树地点是1 3 5 6 7 10 13 你有3棵树
  • CountDownLatch理解一:与join的区别

    首先 我们来看一个应用场景1 假设一条流水线上有三个工作者 worker0 worker1 worker2 有一个任务的完成需要他们三者协作完成 worker2可以开始这个任务的前提是worker0和worker1完成了他们的工作 而wor
  • zabbix-server无法启动

    故障现象 监控界面无数据 1 netstat lntup 先查看zabbix server进程是否正常 2 tail f var log zabbix zabbix server log 查看后台日志 表示一个子进程死掉 是一个zabbix
  • 平凯星辰合伙人余梦杰:全球化和云计算趋势下的开源生态构建

    开源是技术发展的大趋势 其开放的全球生态 敏捷的技术创新以及快速的产品迭代 都有助于企业的发展 而云的蓬勃发展则加速了企业数字化的进程 开源和云两者交融 必然会迸发更多势能 2022年7月27日 在2022开放原子全球开源峰会数据库论坛上
  • 在 IDEA 中连接数据库实现增删改查,使用dao封装数据库操作+bean封装实体类+util封装数据库连接与释放(含源码下载)

    在 IDEA 中连接数据库实现增删改查 使用dao封装数据库操作 bean封装实体类 util封装数据库连接与释放 主要内容 利用SQLyog图形化工具建立数据库 具体代码搭建 bean目录下的 用户实体类User util中对数据库的连接
  • ARM汇编指令集——跳转指令、内存传输指令、软中断产生指令、协处理器指令、伪指令、伪操作(如何从底层直接操纵CPU)

    一 跳转指令 完成程序跳转 实质就是对PC操作 赋值 b bl跳转是短跳转 跳转范围 32MB start mov r0 1 mov r1 2 mov r3 3 b func b跳转 不带返回值 mov r4 4 func mov r5 5