文章目录

  • ret返回指令
  • B 跳转指令
  • BL 带返回的跳转指令
  • B指令可以接上后缀,用来和cmp比较后待条件的跳转

ret返回指令

cpu遇到ret之后,会把lr赋值给pc,这样cpu执行了pc里的地址的指令,就是执行调用这个函数的下一条指令

B 跳转指令

b 跳转指令,相当于win32汇编的jmp无条件跳转指令
下面代码遇到 label4以后就跳转到label4,然后就返回了

_fn2:
mov x0,#0x1
mov x1,#0x2
b label4
label3:
mov x0 ,1
ret
label4:
mov x0 , 0
ret;执行完这局以后就返回上一层了

BL 带返回的跳转指令

bl指令跳转以后遇到第一个ret,就会返回到bl的下一条指令继续执行
同样这段代码把b换成bl就会遇到执行完label4以后遇到ret,还会跳到b label4的下一条指令label3:处继续执行,知道遇到ret才会返回

_fn2:
mov x0,#0x1
mov x1,#0x2
bl label4 ;跳转到label4以后遇到ret后会返回执行下面的label3:
label3:
mov x0 ,1
ret
label4:
mov x0 , 0
ret  ;执行完这句以后会跳到label3:

B指令可以接上后缀,用来和cmp比较后待条件的跳转

EQ:equal 相等
NE:not equal,不相等
GT:great than,大于
GE greate equal,大于等于
LT:less than,小于
LE:less equal,.小于等于

  • 使用的时候可以连着使用beq 就是 前面cmp比较结果相等的时候跳转.也可以写成b.eq
  • 下面代码距离b.lt小于的时候跳转
_fn1:
mov x0,#0x1 ;立即数以#井号开头,0x是16进制
mov x1,#0x2
cmp x0,x1 ;这里做比较,用来下面的b跳转做比较条件
b.lt label2  //lt小于时候跳转,上面cmp 比较练x0和x1,x0<x1成立,所以 b.lt会跳转
label1:
mov x0 ,1
label2:
mov x0 , 0ret

arm64汇编b带条件跳转指令和bl跳转带返回ret指令相关推荐

  1. call和ret指令_8086微处理器中的CALL和RET指令

    call和ret指令 8086微处理器中的CALL指令 (The CALL instruction in the 8086 microprocessor) The CALL instruction i ...

  2. arm汇编lr pc b bl ret指令函数调用和返回gif动图演示

    文章目录 pc 寄存器 lr寄存器 (x30) ret返回指令 bl 跳转指令,带返回 b 跳转,不带返回 pc 寄存器 pc保存着当前指令执行的地址,相当于win32汇编里的eip寄存器 lr寄存器 ...

  3. oracle数据库insert into,oracle中insert into用法 oracle中insert如何带条件添加数据?

    oracle insert into 脚本怎么写 INSE INTO BOOK(bookid,name,price) VALUES('100123','oracle ',54); 或者 INSE IN ...

  4. call指令和ret指令【笔记+详解】

    笔记目录 call指令和ret指令[笔记] 1 引子 2 call和ret的简单运用 3 call指令本质含义详解 4 ret指令 5 总结及汇编环境资源 call指令和ret指令[笔记] 1 引子 ...

  5. ARM64汇编指令入门

    一:寄存器: 1.查看寄存器的方式,xcode连接真机,断点后,输入register read可查看arm64所有的寄存器. 有: x0~x7:传递子程序的参数和返回值,使用时不需要保存,多余的参数用 ...

  6. ARM指令集与Thumb指令集--区别关联--汇编指令 BX LR ; 跳转回LR地址处,既可以是ARM模式也可以是Thumb模式

    BX        LR    ; 跳转回LR地址处,既可以是ARM模式也可以是Thumb模式 A 一.现在先区分下ARM指令集与Thumb指令集        Thumb 指令可以看作是 ARM 指 ...

  7. armv8 汇编 绝对地址赋值_详解汇编语言B和LDR指令与相对跳转和绝对跳转的关系...

    @[TOC] 为什么要有相对跳转和绝对跳转? 顺序执行:指令一条一条按照顺序往下执行,比如变量的定义和赋值都是按照顺序执行的.跳转执行:当指令执行到当前位置后跳转到其他位置执行.比如,在主函数中调用其 ...

  8. 16.控制转移指令(条件跳转指令、比较条件跳转指令、多条件分支跳转指令、无条件跳转指令)

    目录 1.控制转移指令 1.1 条件跳转指令 1.2 比较条件跳转指令 1.3 多条件分支跳转指令 1.4 无条件跳转指令 1.控制转移指令 控制转移指令分为如下图所示的5种,其中比较指令在算术指令中 ...

  9. iOS Hacker Xcode玩转arm64汇编基础

    已经熟悉了x86汇编,所以其他的理论就不多记了,主要是记录以下这些. iphon5s以上都是arm64的设备 armv6 设备:iPhone, iPhone2, iPhone3G, 第一代.第二代 i ...

最新文章

  1. 图论 ---- CF1495D .BFS Trees(图论最短路生成树+枚举计数+树的层次性)
  2. 虚拟机中docker安装mysql远程无法访问解决方法
  3. 什么是控制单元?—Vecloud微云
  4. 读《编程珠玑》 (三)
  5. php5的mysqli函数第二个参数,关于php:我应该将$ mysqli变量传递给每个函数吗?
  6. step3 . day8数据结构之算法
  7. 端午安康 | 6月14日 星期一 | B站首个破亿视频诞生;荣耀50系列预约人数超百万;贝索斯太空船票拍出2800万美元...
  8. linux shell命令 复制,将bash提示符下的当前命令复制到剪贴板
  9. java代理机制简单实现
  10. java 除法向上,向下取整
  11. 1936 问题 B: 打印极值点下标(C语言)
  12. 打包maven后出现jar包丢失
  13. 云顶之弈机器人法爆_云顶之弈法爆流斗法阵容详解
  14. 数据禾|2020年青海省小麦种植分布数据
  15. 病毒分析与防护实验3—— 反汇编工具(Ollydbg)的使用
  16. 拥有超过1200个PNG格式图标的免费图标集 - Cosmo Mini
  17. tableau public使用形状文件进行数据可视化
  18. 【晓风残月】ASP.NET DEMO 16: 通过GridView布局实现的多行批量更新
  19. 关于TDA1557Q
  20. 如何从型号判断NVR支持的接入路数和硬盘数?

热门文章

  1. DNS分离解析 RAID磁盘阵列 进程管理 系统日志分析
  2. ROS古月居21讲笔记
  3. 统计一个英文字符串每个英文字符出现的次数
  4. ManyToOne凭空多了很多空记录,@OrderColumn的问题
  5. 自己挑出的几个windows xp、7、8.0、10的纯净版官方镜像下载地址
  6. 简单爬虫——爬取Scrape|Movie网站电影排行Top10
  7. 第一周 Introduction
  8. 智能车图像处理8-右环岛状态机与补线
  9. 讨教大学:2018通信工程师考试什么时候考,通信工程师证有用吗?
  10. python语言使用不需要付费不存在商业风险_中国大学MOOC慕课_Python语言基础与应用_答案...