arm64汇编b带条件跳转指令和bl跳转带返回ret指令
文章目录
- 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指令相关推荐
- call和ret指令_8086微处理器中的CALL和RET指令
call和ret指令 8086微处理器中的CALL指令 (The CALL instruction in the 8086 microprocessor) The CALL instruction i ...
- arm汇编lr pc b bl ret指令函数调用和返回gif动图演示
文章目录 pc 寄存器 lr寄存器 (x30) ret返回指令 bl 跳转指令,带返回 b 跳转,不带返回 pc 寄存器 pc保存着当前指令执行的地址,相当于win32汇编里的eip寄存器 lr寄存器 ...
- oracle数据库insert into,oracle中insert into用法 oracle中insert如何带条件添加数据?
oracle insert into 脚本怎么写 INSE INTO BOOK(bookid,name,price) VALUES('100123','oracle ',54); 或者 INSE IN ...
- call指令和ret指令【笔记+详解】
笔记目录 call指令和ret指令[笔记] 1 引子 2 call和ret的简单运用 3 call指令本质含义详解 4 ret指令 5 总结及汇编环境资源 call指令和ret指令[笔记] 1 引子 ...
- ARM64汇编指令入门
一:寄存器: 1.查看寄存器的方式,xcode连接真机,断点后,输入register read可查看arm64所有的寄存器. 有: x0~x7:传递子程序的参数和返回值,使用时不需要保存,多余的参数用 ...
- ARM指令集与Thumb指令集--区别关联--汇编指令 BX LR ; 跳转回LR地址处,既可以是ARM模式也可以是Thumb模式
BX LR ; 跳转回LR地址处,既可以是ARM模式也可以是Thumb模式 A 一.现在先区分下ARM指令集与Thumb指令集 Thumb 指令可以看作是 ARM 指 ...
- armv8 汇编 绝对地址赋值_详解汇编语言B和LDR指令与相对跳转和绝对跳转的关系...
@[TOC] 为什么要有相对跳转和绝对跳转? 顺序执行:指令一条一条按照顺序往下执行,比如变量的定义和赋值都是按照顺序执行的.跳转执行:当指令执行到当前位置后跳转到其他位置执行.比如,在主函数中调用其 ...
- 16.控制转移指令(条件跳转指令、比较条件跳转指令、多条件分支跳转指令、无条件跳转指令)
目录 1.控制转移指令 1.1 条件跳转指令 1.2 比较条件跳转指令 1.3 多条件分支跳转指令 1.4 无条件跳转指令 1.控制转移指令 控制转移指令分为如下图所示的5种,其中比较指令在算术指令中 ...
- iOS Hacker Xcode玩转arm64汇编基础
已经熟悉了x86汇编,所以其他的理论就不多记了,主要是记录以下这些. iphon5s以上都是arm64的设备 armv6 设备:iPhone, iPhone2, iPhone3G, 第一代.第二代 i ...
最新文章
- 图论 ---- CF1495D .BFS Trees(图论最短路生成树+枚举计数+树的层次性)
- 虚拟机中docker安装mysql远程无法访问解决方法
- 什么是控制单元?—Vecloud微云
- 读《编程珠玑》 (三)
- php5的mysqli函数第二个参数,关于php:我应该将$ mysqli变量传递给每个函数吗?
- step3 . day8数据结构之算法
- 端午安康 | 6月14日 星期一 | B站首个破亿视频诞生;荣耀50系列预约人数超百万;贝索斯太空船票拍出2800万美元...
- linux shell命令 复制,将bash提示符下的当前命令复制到剪贴板
- java代理机制简单实现
- java 除法向上,向下取整
- 1936 问题 B: 打印极值点下标(C语言)
- 打包maven后出现jar包丢失
- 云顶之弈机器人法爆_云顶之弈法爆流斗法阵容详解
- 数据禾|2020年青海省小麦种植分布数据
- 病毒分析与防护实验3—— 反汇编工具(Ollydbg)的使用
- 拥有超过1200个PNG格式图标的免费图标集 - Cosmo Mini
- tableau public使用形状文件进行数据可视化
- 【晓风残月】ASP.NET DEMO 16: 通过GridView布局实现的多行批量更新
- 关于TDA1557Q
- 如何从型号判断NVR支持的接入路数和硬盘数?
热门文章
- DNS分离解析 RAID磁盘阵列 进程管理 系统日志分析
- ROS古月居21讲笔记
- 统计一个英文字符串每个英文字符出现的次数
- ManyToOne凭空多了很多空记录,@OrderColumn的问题
- 自己挑出的几个windows xp、7、8.0、10的纯净版官方镜像下载地址
- 简单爬虫——爬取Scrape|Movie网站电影排行Top10
- 第一周 Introduction
- 智能车图像处理8-右环岛状态机与补线
- 讨教大学:2018通信工程师考试什么时候考,通信工程师证有用吗?
- python语言使用不需要付费不存在商业风险_中国大学MOOC慕课_Python语言基础与应用_答案...