Android 逆向x86 汇编 ( add / sub / mul / div 数值运算指令 | xor / not / sal / sar / shl / shr 位运算指令 )

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 逆向x86 汇编 ( add / sub / mul / div 数值运算指令 | xor / not / sal / sar / shl / shr 位运算指令 )相关的知识,希望对你有一定的参考价值。





一、add / sub / mul / div 数值运算指令



数值运算指令 : 数值运算指令有 2 2 2 个操作数 , 操作完毕后 , 结果写回到操作数 1 1 1 中 ;

  • add : 加法运算指令 , 运算结果存储到操作数 1 中 ;
  • sub : 减法运算指令 , 运算结果存储到操作数 1 中 ;
  • mul : 乘法运算指令 , 运算结果存储到操作数 1 中 ;
  • div : 除法运算指令 , 运算结果存储到操作数 1 中 ;




二、xor / not / sal / sar / shl / shr 位运算指令



位运算指令 :

  • xor : 异或运算指令 ;
  • not : 取反运算指令 ;
  • sal : 算术左移指令 ;
  • sar : 算术右移指令 ;
  • shl : 逻辑左移指令 ; 算术左移与逻辑左移是完全等效的 ;
  • shr : 逻辑右移指令 ; 逻辑右移 与 算术右移时不同的 , 逻辑右移时 , 如果最高位是 0 , 则移动后空出的位置全都补 0 , 如果最高位是 1 , 则移动后空出的位置全都补 1 ;




总结



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 位运算指令

以上是关于Android 逆向x86 汇编 ( add / sub / mul / div 数值运算指令 | xor / not / sal / sar / shl / shr 位运算指令 )的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向x86 汇编 ( 使用 IDA 解析 x86 架构的动态库文件 | x86 汇编语言分析 )

Android 逆向x86 汇编 ( 使用 IDA 解析 x86 架构的动态库文件 | x86 汇编语言分析 )

Android 逆向x86 汇编 ( 参考资料 | Intel 官方的文档 | x86 汇编中文文档 | 汇编指令查询器 )

Android 逆向x86 汇编 ( 参考资料 | Intel 官方的文档 | x86 汇编中文文档 | 汇编指令查询器 )

Android 逆向x86 汇编 ( cmp 比较指令 | test 比较指令 )

Android 逆向x86 汇编 ( cmp 比较指令 | test 比较指令 )