IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 反汇编 之C 复杂 if -> 正文阅读

[C++知识库]反汇编 之C 复杂 if

#include <stdio.h>

/*
?* 识别复杂运算
?*/

int main()
{
?? ?unsigned int a;
?? ?unsigned int b;
?? ?int c;
?? ?int d;

?? ?if (d) {
?? ??? ?printf("TRUE\n");
?? ?}
?? ?else {
?? ??? ?if (((a > b) && (a != 0)) || ((a == c) && (c != 0)))
?? ??? ??? ?printf("OK\n");
?? ?}

?? ?if (c == d)
?? ??? ?printf("+++\n");

?? ?return 0;
}

#if 0

/*
?* intel
?*/
0000000000001149 <main>:
??? 1149:?? ?f3 0f 1e fa???????? ??? ?endbr64
??? 114d:?? ?55????????????????? ??? ?push?? %rbp
??? 114e:?? ?48 89 e5??????????? ??? ?mov??? %rsp,%rbp
??? 1151:?? ?48 83 ec 10???????? ??? ?sub??? $0x10,%rsp
??? 1155:?? ?83 7d f0 00???????? ??? ?cmpl?? $0x0,-0x10(%rbp)?? ?// (rbp-0x10)-0x0
??? 1159:?? ?74 0e?????????????? ??? ?je???? 1169 <main+0x20>?? ?// ==0 jump
??? 115b:?? ?48 8d 3d a2 0e 00 00 ?? ?lea??? 0xea2(%rip),%rdi??????? # 2004 <_IO_stdin_used+0x4>
??? 1162:?? ?e8 e9 fe ff ff????? ??? ?callq? 1050 <puts@plt>?? ?// puts(rdi)
??? 1167:?? ?eb 28?????????????? ??? ?jmp??? 1191 <main+0x48>?? ?// jump
??? 1169:?? ?8b 45 f4??????????? ??? ?mov??? -0xc(%rbp),%eax?? ?// eax=(rbp-0xc)
??? 116c:?? ?3b 45 f8??????????? ??? ?cmp??? -0x8(%rbp),%eax?? ?// eax-(rbp-0x8)
??? 116f:?? ?76 06?????????????? ??? ?jbe??? 1177 <main+0x2e>?? ?// (无符号<=) jump
??? 1171:?? ?83 7d f4 00???????? ??? ?cmpl?? $0x0,-0xc(%rbp)?? ?// (rbp-0xc)-0x0
??? 1175:?? ?75 0e?????????????? ??? ?jne??? 1185 <main+0x3c>?? ?// 不等/非零 jump
??? 1177:?? ?8b 45 fc??????????? ??? ?mov??? -0x4(%rbp),%eax?? ?// eax=(rbp-0x4)
??? 117a:?? ?39 45 f4??????????? ??? ?cmp??? %eax,-0xc(%rbp)?? ?// (rbp-0xc)-eax
??? 117d:?? ?75 12?????????????? ??? ?jne??? 1191 <main+0x48>?? ?// 不等/非零 jump
??? 117f:?? ?83 7d fc 00???????? ??? ?cmpl?? $0x0,-0x4(%rbp)?? ?// (rbp-0x4)-0x0
??? 1183:?? ?74 0c?????????????? ??? ?je???? 1191 <main+0x48>?? ?// 等于/零 jump
??? 1185:?? ?48 8d 3d 7d 0e 00 00 ?? ?lea??? 0xe7d(%rip),%rdi??????? # 2009 <_IO_stdin_used+0x9>
??? 118c:?? ?e8 bf fe ff ff????? ??? ?callq? 1050 <puts@plt>
??? 1191:?? ?8b 45 fc??????????? ??? ?mov??? -0x4(%rbp),%eax?? ?// eax=(rbp-0x4)
??? 1194:?? ?3b 45 f0??????????? ??? ?cmp??? -0x10(%rbp),%eax?? ?// eax-(rbp-0x10)
??? 1197:?? ?75 0c?????????????? ??? ?jne??? 11a5 <main+0x5c>?? ?// 不等/非零 jump
??? 1199:?? ?48 8d 3d 6c 0e 00 00 ?? ?lea??? 0xe6c(%rip),%rdi??????? # 200c <_IO_stdin_used+0xc>
??? 11a0:?? ?e8 ab fe ff ff????? ??? ?callq? 1050 <puts@plt>
??? 11a5:?? ?b8 00 00 00 00????? ??? ?mov??? $0x0,%eax
??? 11aa:?? ?c9????????????????? ??? ?leaveq
??? 11ab:?? ?c3????????????????? ??? ?retq? ?
??? 11ac:?? ?0f 1f 40 00???????? ??? ?nopl?? 0x0(%rax)


/*
?* arm
?*/
000000000040055c <main>:
? 40055c:?? ?a9be7bfd ?? ?stp?? ?x29, x30, [sp, #-32]!
? 400560:?? ?910003fd ?? ?mov?? ?x29, sp
? 400564:?? ?b9401fa0 ?? ?ldr?? ?w0, [x29, #28]?? ??? ?// w0=[x29+28]
? 400568:?? ?7100001f ?? ?cmp?? ?w0, #0x0?? ??? ?// w0-0x0
? 40056c:?? ?540000a0 ?? ?b.eq?? ?400580 <main+0x24>? // b.none?? ?相等
? 400570:?? ?90000000 ?? ?adrp?? ?x0, 400000 <_init-0x3e8>
? 400574:?? ?911a8000 ?? ?add?? ?x0, x0, #0x6a0
? 400578:?? ?97ffffb6 ?? ?bl?? ?400450 <puts@plt>
? 40057c:?? ?14000012 ?? ?b?? ?4005c4 <main+0x68>
? 400580:?? ?b9401ba1 ?? ?ldr?? ?w1, [x29, #24]
? 400584:?? ?b94017a0 ?? ?ldr?? ?w0, [x29, #20]
? 400588:?? ?6b00003f ?? ?cmp?? ?w1, w0
? 40058c:?? ?54000089 ?? ?b.ls?? ?40059c <main+0x40>? // b.plast?? ?无符号?<=
? 400590:?? ?b9401ba0 ?? ?ldr?? ?w0, [x29, #24]
? 400594:?? ?7100001f ?? ?cmp?? ?w0, #0x0
? 400598:?? ?54000101 ?? ?b.ne?? ?4005b8 <main+0x5c>? // b.any?? ?不等
? 40059c:?? ?b94013a0 ?? ?ldr?? ?w0, [x29, #16]
? 4005a0:?? ?b9401ba1 ?? ?ldr?? ?w1, [x29, #24]
? 4005a4:?? ?6b00003f ?? ?cmp?? ?w1, w0
? 4005a8:?? ?540000e1 ?? ?b.ne?? ?4005c4 <main+0x68>? // b.any?? ?不等
? 4005ac:?? ?b94013a0 ?? ?ldr?? ?w0, [x29, #16]
? 4005b0:?? ?7100001f ?? ?cmp?? ?w0, #0x0
? 4005b4:?? ?54000080 ?? ?b.eq?? ?4005c4 <main+0x68>? // b.none?? ?相等
? 4005b8:?? ?90000000 ?? ?adrp?? ?x0, 400000 <_init-0x3e8>
? 4005bc:?? ?911aa000 ?? ?add?? ?x0, x0, #0x6a8
? 4005c0:?? ?97ffffa4 ?? ?bl?? ?400450 <puts@plt>
? 4005c4:?? ?b94013a1 ?? ?ldr?? ?w1, [x29, #16]
? 4005c8:?? ?b9401fa0 ?? ?ldr?? ?w0, [x29, #28]
? 4005cc:?? ?6b00003f ?? ?cmp?? ?w1, w0
? 4005d0:?? ?54000081 ?? ?b.ne?? ?4005e0 <main+0x84>? // b.any?? ?不等
? 4005d4:?? ?90000000 ?? ?adrp?? ?x0, 400000 <_init-0x3e8>
? 4005d8:?? ?911ac000 ?? ?add?? ?x0, x0, #0x6b0
? 4005dc:?? ?97ffff9d ?? ?bl?? ?400450 <puts@plt>
? 4005e0:?? ?52800000 ?? ?mov?? ?w0, #0x0????????????????? ??? ?// #0
? 4005e4:?? ?a8c27bfd ?? ?ldp?? ?x29, x30, [sp], #32
? 4005e8:?? ?d65f03c0 ?? ?ret
? 4005ec:?? ?00000000 ?? ?.inst?? ?0x00000000 ; undefined

#endif

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-25 11:31:44  更:2022-05-25 11:31:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/13 20:50:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码