博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
程序员必修语言——汇编(bl和ret指令)
阅读量:6528 次
发布时间:2019-06-24

本文共 461 字,大约阅读时间需要 1 分钟。

上篇文章我们了解了内存读写的指令,关于栈的操作。

接下来我们看下这个Demo。

  • 新建项目(单个视图的空项目)
  • CMD + SHIFT + N 选择真机(如果是模拟器汇编指令将不一样)
程序员必修语言——汇编(bl和ret指令)

  • CMD + N 新建文件,选择 Assembly File(Empty也可以,后缀名加上.s就OK)
程序员必修语言——汇编(bl和ret指令)

  • 写点汇编代码
程序员必修语言——汇编(bl和ret指令)

  • 来到main.m文件

运行的结果是怎样? 死循环为什么会这样?带着这样的疑问我们来看下接下来的两条指令和一个寄存器。

bl和ret指令

程序员必修语言——汇编(bl和ret指令)

bl标号

  • 将下一条指令的地址放入lr(x30)寄存器
  • 转到标号处执行指令

ret

  • 默认使用lr(x30)寄存器的值,通过底层指令提示CPU此处作为下条指令地址!

ARM64平台的特色指令,它面向硬件做了优化处理的

x30寄存器

x30寄存器存放的是函数的返回地址.当ret指令执行时刻,会寻找x30寄存器保存的地址值!

注意:在函数嵌套调用的时候.需要将x30入栈!

补充:以后每天更新汇编系列知识,以上内容接着上一篇阅读,关注作者获取每天更新知识

本文作者:百度搜索“请叫我hank”

转载地址:http://jgtbo.baihongyu.com/

你可能感兴趣的文章
冲浪科技获Ventech China数百万美元天使轮融资,发力自动驾驶行业
查看>>
通过ActionTrail监控AccessKey的使用
查看>>
从 JavaScript 到 TypeScript
查看>>
一个mysql复制中断的案例
查看>>
【最佳实践】OSS开源工具ossutil-大文件断点续传
查看>>
Linux常用的服务器构建
查看>>
深入了解 Weex
查看>>
Android第三方开源FloatingActionButton(com.getbase.floatingactionbutton)【1】
查看>>
【75位联合作者Nature重磅】AI药神:机器学习模型有望提前五年预测白血病!
查看>>
精通SpringBoot——第二篇:视图解析器,静态资源和区域配置
查看>>
JavaScript基础(六)面向对象
查看>>
总结几点Quartz的经验
查看>>
物联网、自动化的冲击下未来20年职场六大趋势
查看>>
《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一3.6.2 使用StAX解析器
查看>>
9月26日云栖精选夜读:阿里Java代码规约插件即将全球首发,邀您来发布仪式现场...
查看>>
北京市交管局联合高德地图发布北京中考出行提示
查看>>
如何防止应用程序泄密?
查看>>
一文带你看懂物联网开源操作系统
查看>>
什么是实践中真正在用的数据科学系统?
查看>>
新型智慧城市:构建“互联网+”新生活
查看>>