B

无条件跳转

一条汇编指令 __text:000000010333E3D4                 B               loc_10333EA74

对应字节码        A8 01 00 14

其中,0x14是B对应的字节码,0x1A8是对应的偏移

0x10333EA74 - 0x10333E3D4 = 0x6A0 = 0x1A8 * 4

这里*4推测是一条指令4个字节的意思。

CBZ

有条件跳转

一条汇编指令 __text:00000001031CAE70                 CBZ             X20, loc_1031CB224

对应字节码 B4 1D 00 B4

其中,右边的0xB4是指令CBZ对应的字节码,左边的0xB4应该对应X20(不确定),0x1D对应的偏移

0x1031CB224 - 0x1031CAE70 = 0x3B4 = 0x1D * 8 * 4

这里*4同样应该是指令占4个字节的意思。*8可能是因为8个bit?为什么指令B没有*8也不得而知。

说了这么多,是想直接修改汇编,将CBZ改成B。

__text:00000001031CAE70                 CBZ             X20, loc_1031CB224

B4 1D 00 B4

===》

__text:00000001031CAE70                 B               loc_1031CB224

ED 00 00 14

顺便一提,这也就能更直观的说明,什么时候需要用B,什么时候需要用BR了:

一条指令4字节,指令B占1个字节,偏移占3个字节,当偏移大于0xFFFFFF的时候,就需要通过寄存器跳转指令BR来操作了。

基本上都是个人推论。

ARM64汇编,跳转命令B\CBZ,字节码相关推荐

  1. java 字节码查看_一种查看java字节码时显示方法调用关系图的方法与流程

    本发明涉及一种代码逻辑分析方法,具体涉及一种查看java字节码时显示方法调用关系图的方法. 背景技术: 目前软件反编译领域有不少对可执行文件进行反编译的工具如IDA,也有对Java代码生成的中间码文件 ...

  2. 【JVM源码解析】模板解释器解释执行Java字节码指令(上)

    本文由HeapDump性能社区首席讲师鸠摩(马智)授权整理发布 第17章-x86-64寄存器 不同的CPU都能够解释的机器语言的体系称为指令集架构(ISA,Instruction Set Archit ...

  3. Java使用字节码和汇编语言同步分析volatile,synchronized的底层实现

    关于怎么查看字节码的五种方法参考本人另一篇文章<Java以及IDEA下查看字节码的五种方法> 查看汇编语言汇编码 说要看汇编还是很有必要的,因为有些地方比如加锁其实还是通过汇编实现的,只看 ...

  4. 你还在为怎么查看字节码指令而担忧吗?

    来自:烟雨星空 前言 我们平时编码过程中,可能很少去查看 Java 文件编译后的字节码指令.但是,不管你是因为对技术非常热爱,喜欢刨根问底,还是想在别人面前装X .我认为,都非常有必要了解一下常见的字 ...

  5. 这一次,彻底弄懂 Java 字节码文件!

    作者 | 东升的思考 责编 | Elle 不啰嗦,直接从最最简单的一段Java源代码开启Java整体字节码分析之旅. Java 源码文件 package com.dskj.jvm.bytecode; ...

  6. JVM学习笔记之字节码指令集

    目录 背景 概述 执行模型 字节码与数据类型 指令分类 加载与存储指令 再谈操作数栈与局部变量表 局部变量压栈指令 常量入栈指令 出栈装入局部变量表指令 算术指令 所有算术指令 比较指令的说明 类型转 ...

  7. Java字节码的详细讲解-刘宇

    Java字节码的详细讲解-刘宇 一.字节码的整体结构 二.字节码范围解析 2.1.魔数 2.2.版本信息 2.3.常量池(constant pool) 2.4.描述符规则 2.5.访问标志(Acces ...

  8. 【Java 虚拟机原理】Class 字节码二进制文件分析 一 ( 字节码文件附加信息 | 魔数 | 次版本号 | 主版本号 | 常量池个数 )

    文章目录 一.字节码文件 与 JVM 二.字节码文件示例 三.字节码文件二进制结构分析 1.魔数 2.次版本号 3.主版本号 4.常量池个数 一.字节码文件 与 JVM Java 源码编译成 Clas ...

  9. java的字节码无法显示_【java】查看Java字节码文件内容的方法+使用javap找不到类 解决方法...

    研究synchronized底层实现,涉及到查看java字节码的需要 前提是,你的PC已经成功安装了JDK并别配置了环境变量. ==========查看方法========= 一.javap查看简约字 ...

最新文章

  1. java8学习:新的日期使用
  2. 好强一个Julia!CSV数据读取,性能最高多出R、Python 22倍
  3. Sql Server 得到当月第一天
  4. java执行mongodb语句_java下执行mongodb
  5. PPT 下载 | 数据治理中的一些挑战与应用
  6. android 判断文件是否存在_每日一课 | Python检查文件是否存在
  7. RTree算法及介绍
  8. 数据复制技术(三)---实践操作全过程图文并貌
  9. java word模板替换多行_Java动态替换word模板的最佳实践
  10. 获取props里面的数据_Kafka 使用Java实现数据的生产和消费demo
  11. 读《python核心编程2》笔记 1
  12. Appfuse:扩展自己的GenericManager
  13. java冒泡排序及面向对象基本概念
  14. DSP6678核间通信
  15. 植物大战僵尸修改存档用户名、关卡、金钱说明
  16. hdu 5698 瞬间移动(2016百度之星 - 初赛(Astar Round2B)——数学题)
  17. Assertion failed: Protocol wrong type for socket [10041] zeromq 4.3.1\src\ip.cpp:417)错误
  18. win10无限重启_系统更新后无限重启怎么办?
  19. 借助MATLAB与SIMULINK仿真嵌入式C算法
  20. xposed模块编写教程_新手不要再被误导!这是一篇最新的Xposed模块编写教程

热门文章

  1. 住房按揭贷款计算器更新
  2. 01背包问题(当有的背包重量是非整数时)的递归(优化成动态规划+再用滚动数组优化)解法+一些动态规划(递归,搜索)的高级技巧
  3. Azkaban多Executor模式注意事项
  4. Stream.noneMatch()
  5. 【lizhi125】站长工具包,站长必备工具,SEO查询工具,统计工具
  6. [Unity学习笔记:FPS游戏制作(3)]子弹拖尾,碰撞与枪口火焰效果
  7. 小x的奇遇-adventure
  8. linux EHCI DRIVER之中断处理函数ehci_irq()分析(二)
  9. Ubuntu 最新版 10.04 下安装中文智能输入法
  10. matlab 如何查内置函数,关于Matlab的内置函数 ordqz的用法-经管之家官网!