汇编:汇编与C派系语言混用以及对应LLDB常用指令
汇编与C/C++/Objective-C混用,分两种类型:外联汇编、内联汇编。
LLDB的一些常用指令可以协助我们更好的读取分析OC反编译,看懂汇编代码。
1、外联汇编
sum.h 声明:
#ifndef sum_h
#define sum_hint sum(int a, int b);#endif /* sum_h */
sum.s 实现:
.global _sum_sum:movq %rdi, %raxaddq %rsi, %raxretq
main.m 调用:
#import <Foundation/Foundation.h>
#import "sum.h"
int main(int argc, const char * argv[]) {@autoreleasepool {NSLog(@"%d", sum(1, 2));}return 0;
}
2、内联汇编
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {@autoreleasepool {int num1 = 1;int num2 = 2;int result;__asm__("addq %%rbx, %%rax": "=a"(result): "a"(num1), "b"(num2));NSLog(@"%d", result);}return 0;
}
LLDB常用指令
1.1、读取寄存器的值
register read/格式
register read/x
1.2、修改寄存器的值
register write 寄存器名称 数值
register write $rax 0
2.1、读取内存中的值
x/数量-格式-字节大小 内存地址
x/3xw 0x0000010
2.2、修改内存中的值
memory write 内存地址 数值
memory write 0x0000010 10
3.1、格式
x是16进制,f是浮点,d是十进制
3.2、字节大小
b – byte 1字节
h – half word 2字节
w – word 4字节
g – giant word 8字节
4、expression 表达式
可以简写:expr 表达式
expression $rax
expression $rax = 1
5、po 表达式
6、print 表达式
7、po/x r a x 8 、 p o ( i n t ) rax 8、po (int) rax8、po(int)rax
汇编:汇编与C派系语言混用以及对应LLDB常用指令相关推荐
- c语言汇编混合编程方法,C语言和汇编语言混合编程方法
摘要: C语言是一种高级的面向过程的开发语言,汇编语言是一种低级的面向机器的编程语言.两者在程序设计开发方面各有优劣,目前两者的混合编程得到了广泛的应用.本文通过具体的实例,说明了混合编程的基本方法, ...
- bcs转10 c语言,小弟刚学习C语言,怎么把下段汇编代码转化为C语言程序,请高手指教!!!单片机89c52...
已结贴√ 问题点数:20 回复次数:3 小弟刚学习C语言,怎么把下段汇编代码转化为C语言程序,请高手指教!!!单片机89c52 BIT_COUNT DATA 07FH TIMER0 ...
- cortex-A7 ARM 汇编常用指令 终极总结
1.处理器内部常用数据传输指令 MOV R0 R1 // 通用寄存器互传 MRS R0 CPSR // 特殊寄存器 向 通用寄存器传 MSR CPSR R1 // 通用寄存器 向 特殊 ...
- ARM汇编:汇编中proc、endp、ret、near、far指令用法
ARM汇编:汇编中proc.endp.ret.near.far指令用法 子程序名 PROC NEAR ( 或 FAR ) -- ret 子程序名 ENDP (1)NEAR属性(段内近调用): 调用程序 ...
- 80×86汇编常用指令
80×86汇编常用指令 一.数据传送指令 1. 通用数据传送指令 简写 英文全称 执行操作 MOV move 传送 MOVSX move with sign-extend 带符号扩展传送 MOVZX ...
- 汇编汇编(MASM debug命令)
汇编汇编(MASM debug命令) 最近学习汇编语言, 在调试时命令总是忘记, 下面整理一下常用的debug命令,供后续查阅. t:执行CS:IP指向的指令,t命令在执行修改寄存器SS的指令时,下一 ...
- R语言可视化图像中最常用的点样式(pch、plot characters)列表、ggpubr::show_point_shapes可视化最常用的点样式(pch)
R语言可视化图像中最常用的点样式(pch.plot characters)列表.ggpubr::show_point_shapes可视化最常用的点样式(pch) 目录
- c语言中removeDir的相反函数,C语言编程常见问题解答之常用函数的包括文件.doc
C语言编程常见问题解答之常用函数的包括文件 C语言编程常见问题解答之常用函数的包含文件(1) 作者:unknown 更新时间: 2005-05-10 函数 包含 类别 功能 _atold math.h ...
- C语言windows.h库的常用函数(三)
SetCursorPos函数 用途 SetCursorPos函数是windows.h库中用来设置指针位置的函数,使用该函数鼠标指针将会直接跳至指定坐标位置 参数 SetCursorPos函数拥有x和y ...
最新文章
- JAVA 解析xml字符串
- mybatis基础(一)
- MapReduce详解和WordCount模拟
- java.lang.NoClassDefFoundError: org/apache/shiro/authc/AuthenticationToken
- 信息学奥赛一本通C++语言——1081:分苹果
- 蓝桥杯入门训练Fibonacci数列
- 妙用VM的“远程显示”功能
- 机器学习sklearn
- Shell命令学习笔记
- java乐视面试题_乐视面试题 · vagabond1-1983/JavaRock Wiki · GitHub
- 金山词霸2006常规窗口不见了!只能看到最大化的的原因
- 手机号归属地区编码_不懂就问丨手机号码为什么是11位呢?
- python-Excel操作(xlrd读,xlwt写)
- 计算机无法连接网络打印机,网络打印机无法连接的解决方法是什么
- html放大镜原理,js放大镜效果原理
- vue 实现点击选中div后, 右下角显示对号√
- java父类的称谓_《商周金文中的血缘关系称谓》
- 本年盈余与预算结余差异表的分析(一)
- Sonatype Nexus Maven仓库搭建和管理
- C++ RPG创建游戏角色
热门文章
- 微信编辑器都有什么功能?
- Linux命令--mkdir命令:创建目录(文件夹)
- python3爬取微博评论api情感分析_如何科学地蹭热点:用python爬虫获取热门微博评论并进行情感分析...
- 新车提车需要的注意事项,你了解吗?
- 理查和马文价值导向选股法则!
- 人工智能是真正能够理解人类语言、懂得故事含义、和人类大脑并无二致的AI
- oracle 视图带变量条件,oracle视图(带参数)
- 自己动手建网站(五)javaweb基础:登录功能
- Bios intelz77主板设置WakeOnLan网络唤醒
- Runtime.exec()执行linux shell