ARM64汇编,跳转命令B\CBZ,字节码
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,字节码相关推荐
- java 字节码查看_一种查看java字节码时显示方法调用关系图的方法与流程
本发明涉及一种代码逻辑分析方法,具体涉及一种查看java字节码时显示方法调用关系图的方法. 背景技术: 目前软件反编译领域有不少对可执行文件进行反编译的工具如IDA,也有对Java代码生成的中间码文件 ...
- 【JVM源码解析】模板解释器解释执行Java字节码指令(上)
本文由HeapDump性能社区首席讲师鸠摩(马智)授权整理发布 第17章-x86-64寄存器 不同的CPU都能够解释的机器语言的体系称为指令集架构(ISA,Instruction Set Archit ...
- Java使用字节码和汇编语言同步分析volatile,synchronized的底层实现
关于怎么查看字节码的五种方法参考本人另一篇文章<Java以及IDEA下查看字节码的五种方法> 查看汇编语言汇编码 说要看汇编还是很有必要的,因为有些地方比如加锁其实还是通过汇编实现的,只看 ...
- 你还在为怎么查看字节码指令而担忧吗?
来自:烟雨星空 前言 我们平时编码过程中,可能很少去查看 Java 文件编译后的字节码指令.但是,不管你是因为对技术非常热爱,喜欢刨根问底,还是想在别人面前装X .我认为,都非常有必要了解一下常见的字 ...
- 这一次,彻底弄懂 Java 字节码文件!
作者 | 东升的思考 责编 | Elle 不啰嗦,直接从最最简单的一段Java源代码开启Java整体字节码分析之旅. Java 源码文件 package com.dskj.jvm.bytecode; ...
- JVM学习笔记之字节码指令集
目录 背景 概述 执行模型 字节码与数据类型 指令分类 加载与存储指令 再谈操作数栈与局部变量表 局部变量压栈指令 常量入栈指令 出栈装入局部变量表指令 算术指令 所有算术指令 比较指令的说明 类型转 ...
- Java字节码的详细讲解-刘宇
Java字节码的详细讲解-刘宇 一.字节码的整体结构 二.字节码范围解析 2.1.魔数 2.2.版本信息 2.3.常量池(constant pool) 2.4.描述符规则 2.5.访问标志(Acces ...
- 【Java 虚拟机原理】Class 字节码二进制文件分析 一 ( 字节码文件附加信息 | 魔数 | 次版本号 | 主版本号 | 常量池个数 )
文章目录 一.字节码文件 与 JVM 二.字节码文件示例 三.字节码文件二进制结构分析 1.魔数 2.次版本号 3.主版本号 4.常量池个数 一.字节码文件 与 JVM Java 源码编译成 Clas ...
- java的字节码无法显示_【java】查看Java字节码文件内容的方法+使用javap找不到类 解决方法...
研究synchronized底层实现,涉及到查看java字节码的需要 前提是,你的PC已经成功安装了JDK并别配置了环境变量. ==========查看方法========= 一.javap查看简约字 ...
最新文章
- java8学习:新的日期使用
- 好强一个Julia!CSV数据读取,性能最高多出R、Python 22倍
- Sql Server 得到当月第一天
- java执行mongodb语句_java下执行mongodb
- PPT 下载 | 数据治理中的一些挑战与应用
- android 判断文件是否存在_每日一课 | Python检查文件是否存在
- RTree算法及介绍
- 数据复制技术(三)---实践操作全过程图文并貌
- java word模板替换多行_Java动态替换word模板的最佳实践
- 获取props里面的数据_Kafka 使用Java实现数据的生产和消费demo
- 读《python核心编程2》笔记 1
- Appfuse:扩展自己的GenericManager
- java冒泡排序及面向对象基本概念
- DSP6678核间通信
- 植物大战僵尸修改存档用户名、关卡、金钱说明
- hdu 5698 瞬间移动(2016百度之星 - 初赛(Astar Round2B)——数学题)
- Assertion failed: Protocol wrong type for socket [10041] zeromq 4.3.1\src\ip.cpp:417)错误
- win10无限重启_系统更新后无限重启怎么办?
- 借助MATLAB与SIMULINK仿真嵌入式C算法
- xposed模块编写教程_新手不要再被误导!这是一篇最新的Xposed模块编写教程
热门文章
- 住房按揭贷款计算器更新
- 01背包问题(当有的背包重量是非整数时)的递归(优化成动态规划+再用滚动数组优化)解法+一些动态规划(递归,搜索)的高级技巧
- Azkaban多Executor模式注意事项
- Stream.noneMatch()
- 【lizhi125】站长工具包,站长必备工具,SEO查询工具,统计工具
- [Unity学习笔记:FPS游戏制作(3)]子弹拖尾,碰撞与枪口火焰效果
- 小x的奇遇-adventure
- linux EHCI DRIVER之中断处理函数ehci_irq()分析(二)
- Ubuntu 最新版 10.04 下安装中文智能输入法
- matlab 如何查内置函数,关于Matlab的内置函数 ordqz的用法-经管之家官网!