前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Android 逆向】x86 汇编 ( call 子函数调用指令 | jmp 跳转指令 | lea 加载指令 | mov 数据传送指令 )

【Android 逆向】x86 汇编 ( call 子函数调用指令 | jmp 跳转指令 | lea 加载指令 | mov 数据传送指令 )

作者头像
韩曙亮
发布2023-03-29 19:17:12
1.4K0
发布2023-03-29 19:17:12
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

一、call 子函数调用指令


call 指令是 子函数调用指令 , 调用的指令的下一条指令地址入栈 , 会自动跳转到 子函数 目标地址中 , 该地址可能存储在寄存器中 , 也可能是一个常量 ;

二、jmp 跳转指令


jmp 跳转指令 , 默认情况下是无条件跳转 ;

如果想要附加条件跳转 , 如达成某种条件后才能跳转 , 可以附带如下条件 ;

  • a : above , 无符号 大于 跳转 ;
  • b : below , 吗无符号 小于 跳转 ;
  • g : great , 有符号 大于 跳转 ;
  • l : less , 有符号 小于 跳转 ;
  • e : equal , 等于 ;
  • n : negative , 反条件 ;
  • o : 对应 溢出标志 , 减法操作是否会导致溢出 ; ( 与运算不存在进位 , 没有溢出 )
  • p : 对应 奇偶 位 , 运算结果 的 奇偶 , 检测结果最后一个位是
0

还是

1

;

  • s : 对应 符号标志位 , 计算结果如果是负数 , 该标志位设置成
0

, 计算结果如果是正数 , 该标志位设置成

1

;

  • z : 对应 零标志 , 如果 与操作 最后的结果是
0

, 该 零标志位 会被设置成

1

, 如果 与操作 结果不为

0

, 该 零标志位 会被设置成

0

;

上述条件可以进行任意组合 , 如

  • a 表示大于跳转 ,
  • e 表示等于跳转 ,
  • ae 表示大于等于跳转 ,
  • nae 表示不大于等于跳转 即 小于跳转 ;

三、lea 加载指令


lea 指令 : Load Effect Address 取地址值 , 将 数据地址 加载到 寄存器 中 , 方便进行批量数据处理 , 如批量复制 , 批量修改 ;

四、mov 数据传送指令


mov 指令是数据传送指令 ;

mov a1 , a2 指令的作用是 , 将 a2 中的值写入到 a1 中 ;

总结


align 字节对齐 , db 声明字符 / 字符串 , nop 空指令 cmp 比较 , test 比较 call 子函数调用指令 , jmp 跳转指令 ( 可选参数 a , b , c , g , l , o , p , s , z , e , n) lea 加载指令 , lds , les , lfs , lgs , lss , mov 数据传送指令 push , pop , pushf , popf , pushd , popd , pushad , popad , pusha , popa ret , retn , set add , sub , mul , div xor , not , shl , shr , sal , sar , rol , ror , rcl , rcr

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、call 子函数调用指令
  • 二、jmp 跳转指令
  • 三、lea 加载指令
  • 四、mov 数据传送指令
  • 总结
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档