Diff
checker
文本
文本
图像
文档
Excel
文件夹
Legal
Enterprise
桌面版
定价
登录
下载 Diffchecker 桌面版
比较文本
查找两个文本文件之间的差异
工具
历史
实时编辑器
折叠未更改行
关闭换行
视图
拆分
统一
比对精度
智能
单词
字符
语法高亮
选择语法
忽略
文本转换
转到第一个差异
编辑输入
Diffchecker Desktop
运行Diffchecker最安全的方式。获取Diffchecker桌面应用:您的差异永远不会离开您的电脑!
获取桌面版
Untitled diff
创建于
11年前
差异永不过期
清除
导出
分享
解释
41 删除
行
总计
删除
字符
总计
删除
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
123 行
全部复制
15 添加
行
总计
添加
字符
总计
添加
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
99 行
全部复制
g++ --version
g++ --version
g++ -std=c++11 -O2 -Wall -pedantic -pthread main.cpp -S -masm=intel -o test.asm && cat test.asm | c++filt
g++ -std=c++11 -O2 -Wall -pedantic -pthread main.cpp -S -masm=intel -o test.asm && cat test.asm | c++filt
g++ (GCC) 5.2.0
g++ (GCC) 5.2.0
Copyright (C) 2015 Free Software Foundation, Inc.
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
.file "main.cpp"
.file "main.cpp"
.intel_syntax noprefix
.intel_syntax noprefix
.section .rodata.str1.1,"aMS",@progbits,1
.section .rodata.str1.1,"aMS",@progbits,1
复制
已复制
复制
已复制
.LC
1
:
.LC
0
:
.string "visible effect\n"
.string "visible effect\n"
.section .text.unlikely,"ax",@progbits
.section .text.unlikely,"ax",@progbits
复制
已复制
复制
已复制
.LCOLDB
2
:
.LCOLDB
1
:
.section .text.startup,"ax",@progbits
.section .text.startup,"ax",@progbits
复制
已复制
复制
已复制
.LHOTB
2
:
.LHOTB
1
:
.p2align 4,,15
.p2align 4,,15
.globl main
.globl main
.type main, @function
.type main, @function
main:
main:
.LFB1408:
.LFB1408:
.cfi_startproc
.cfi_startproc
sub rsp, 40
sub rsp, 40
.cfi_def_cfa_offset 48
.cfi_def_cfa_offset 48
mov rax, QWORD PTR std::cin[rip]
mov rax, QWORD PTR std::cin[rip]
mov QWORD PTR [rsp], OFFSET FLAT:std::cin
mov QWORD PTR [rsp], OFFSET FLAT:std::cin
mov rax, QWORD PTR [rax-24]
mov rax, QWORD PTR [rax-24]
test BYTE PTR std::cin[rax+32], 5
test BYTE PTR std::cin[rax+32], 5
je .L2
je .L2
mov BYTE PTR [rsp+16], 0
mov BYTE PTR [rsp+16], 0
复制
已复制
复制
已复制
.L9:
jmp .L1
3
cmp BYTE PTR guard variable for main::itend[rip], 0
jne .L10
jmp .L1
9
.p2align 4,,10
.p2align 4,,10
.p2align 3
.p2align 3
.L7:
.L7:
mov edx, 15
mov edx, 15
复制
已复制
复制
已复制
mov esi, OFFSET FLAT:.LC
1
mov esi, OFFSET FLAT:.LC
0
mov edi, OFFSET FLAT:std::cout
mov edi, OFFSET FLAT:std::cout
call std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)
call std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)
复制
已复制
复制
已复制
.L1
0
:
.L1
3
:
movzx eax,
BYTE PTR [rsp+16]
cmp
BYTE PTR [rsp+16]
, 0
cmp al, BYTE PTR main::itend[rip+16]
jne .L7
jne .L7
复制
已复制
复制
已复制
mov rcx, QWORD PTR main::itend[rip]
cmp QWORD PTR [rsp], rcx
sete dl
cmp al, dl
ja .L7
xor eax, eax
xor eax, eax
add rsp, 40
add rsp, 40
.cfi_remember_state
.cfi_remember_state
.cfi_def_cfa_offset 8
.cfi_def_cfa_offset 8
ret
ret
.L2:
.L2:
.cfi_restore_state
.cfi_restore_state
lea rsi, [rsp+8]
lea rsi, [rsp+8]
mov edi, OFFSET FLAT:std::cin
mov edi, OFFSET FLAT:std::cin
mov BYTE PTR [rsp+16], 1
mov BYTE PTR [rsp+16], 1
call std::basic_istream<char, std::char_traits<char> >& std::basic_istream<char, std::char_traits<char> >::_M_extract<double>(double&)
call std::basic_istream<char, std::char_traits<char> >& std::basic_istream<char, std::char_traits<char> >::_M_extract<double>(double&)
mov rax, QWORD PTR [rsp]
mov rax, QWORD PTR [rsp]
mov rdx, QWORD PTR [rax]
mov rdx, QWORD PTR [rax]
mov rdx, QWORD PTR [rdx-24]
mov rdx, QWORD PTR [rdx-24]
test BYTE PTR [rax+32+rdx], 5
test BYTE PTR [rax+32+rdx], 5
sete BYTE PTR [rsp+16]
sete BYTE PTR [rsp+16]
复制
已复制
复制
已复制
jmp .L9
jmp .L1
3
.L19:
mov edi, OFFSET FLAT:guard variable for main::itend
call __cxa_guard_acquire
test eax, eax
je .L10
mov edi, OFFSET FLAT:guard variable for main::itend
mov QWORD PTR main::itend[rip], 0
mov QWORD PTR main::itend[rip+8], 0
mov BYTE PTR main::itend[rip+16], 0
call __cxa_guard_release
jmp .L1
0
.cfi_endproc
.cfi_endproc
.LFE1408:
.LFE1408:
.size main, .-main
.size main, .-main
.section .text.unlikely
.section .text.unlikely
复制
已复制
复制
已复制
.LCOLDE
2
:
.LCOLDE
1
:
.section .text.startup
.section .text.startup
复制
已复制
复制
已复制
.LHOTE
2
:
.LHOTE
1
:
.section .text.unlikely
.section .text.unlikely
复制
已复制
复制
已复制
.LCOLDB
3
:
.LCOLDB
2
:
.section .text.startup
.section .text.startup
复制
已复制
复制
已复制
.LHOTB
3
:
.LHOTB
2
:
.p2align 4,,15
.p2align 4,,15
.type _GLOBAL__sub_I_main, @function
.type _GLOBAL__sub_I_main, @function
_GLOBAL__sub_I_main:
_GLOBAL__sub_I_main:
.LFB1609:
.LFB1609:
.cfi_startproc
.cfi_startproc
sub rsp, 8
sub rsp, 8
.cfi_def_cfa_offset 16
.cfi_def_cfa_offset 16
mov edi, OFFSET FLAT:std::__ioinit
mov edi, OFFSET FLAT:std::__ioinit
call std::ios_base::Init::Init()
call std::ios_base::Init::Init()
mov edx, OFFSET FLAT:__dso_handle
mov edx, OFFSET FLAT:__dso_handle
mov esi, OFFSET FLAT:std::__ioinit
mov esi, OFFSET FLAT:std::__ioinit
mov edi, OFFSET FLAT:std::ios_base::Init::~Init()
mov edi, OFFSET FLAT:std::ios_base::Init::~Init()
add rsp, 8
add rsp, 8
.cfi_def_cfa_offset 8
.cfi_def_cfa_offset 8
jmp __cxa_atexit
jmp __cxa_atexit
.cfi_endproc
.cfi_endproc
.LFE1609:
.LFE1609:
.size _GLOBAL__sub_I_main, .-_GLOBAL__sub_I_main
.size _GLOBAL__sub_I_main, .-_GLOBAL__sub_I_main
.section .text.unlikely
.section .text.unlikely
复制
已复制
复制
已复制
.LCOLDE
3
:
.LCOLDE
2
:
.section .text.startup
.section .text.startup
复制
已复制
复制
已复制
.LHOTE
3
:
.LHOTE
2
:
.section .init_array,"aw"
.section .init_array,"aw"
.align 8
.align 8
.quad _GLOBAL__sub_I_main
.quad _GLOBAL__sub_I_main
复制
已复制
复制
已复制
.local main::itend
.comm main::itend,24,16
.local guard variable for main::itend
.comm guard variable for main::itend,8,8
.local std::__ioinit
.local std::__ioinit
.comm std::__ioinit,1,1
.comm std::__ioinit,1,1
.hidden __dso_handle
.hidden __dso_handle
.ident "GCC: (GNU) 5.2.0"
.ident "GCC: (GNU) 5.2.0"
.section .note.GNU-stack,"",@progbits
.section .note.GNU-stack,"",@progbits
已保存差异
原始文本
打开文件
g++ --version g++ -std=c++11 -O2 -Wall -pedantic -pthread main.cpp -S -masm=intel -o test.asm && cat test.asm | c++filt g++ (GCC) 5.2.0 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. .file "main.cpp" .intel_syntax noprefix .section .rodata.str1.1,"aMS",@progbits,1 .LC1: .string "visible effect\n" .section .text.unlikely,"ax",@progbits .LCOLDB2: .section .text.startup,"ax",@progbits .LHOTB2: .p2align 4,,15 .globl main .type main, @function main: .LFB1408: .cfi_startproc sub rsp, 40 .cfi_def_cfa_offset 48 mov rax, QWORD PTR std::cin[rip] mov QWORD PTR [rsp], OFFSET FLAT:std::cin mov rax, QWORD PTR [rax-24] test BYTE PTR std::cin[rax+32], 5 je .L2 mov BYTE PTR [rsp+16], 0 .L9: cmp BYTE PTR guard variable for main::itend[rip], 0 jne .L10 jmp .L19 .p2align 4,,10 .p2align 3 .L7: mov edx, 15 mov esi, OFFSET FLAT:.LC1 mov edi, OFFSET FLAT:std::cout call std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) .L10: movzx eax, BYTE PTR [rsp+16] cmp al, BYTE PTR main::itend[rip+16] jne .L7 mov rcx, QWORD PTR main::itend[rip] cmp QWORD PTR [rsp], rcx sete dl cmp al, dl ja .L7 xor eax, eax add rsp, 40 .cfi_remember_state .cfi_def_cfa_offset 8 ret .L2: .cfi_restore_state lea rsi, [rsp+8] mov edi, OFFSET FLAT:std::cin mov BYTE PTR [rsp+16], 1 call std::basic_istream<char, std::char_traits<char> >& std::basic_istream<char, std::char_traits<char> >::_M_extract<double>(double&) mov rax, QWORD PTR [rsp] mov rdx, QWORD PTR [rax] mov rdx, QWORD PTR [rdx-24] test BYTE PTR [rax+32+rdx], 5 sete BYTE PTR [rsp+16] jmp .L9 .L19: mov edi, OFFSET FLAT:guard variable for main::itend call __cxa_guard_acquire test eax, eax je .L10 mov edi, OFFSET FLAT:guard variable for main::itend mov QWORD PTR main::itend[rip], 0 mov QWORD PTR main::itend[rip+8], 0 mov BYTE PTR main::itend[rip+16], 0 call __cxa_guard_release jmp .L10 .cfi_endproc .LFE1408: .size main, .-main .section .text.unlikely .LCOLDE2: .section .text.startup .LHOTE2: .section .text.unlikely .LCOLDB3: .section .text.startup .LHOTB3: .p2align 4,,15 .type _GLOBAL__sub_I_main, @function _GLOBAL__sub_I_main: .LFB1609: .cfi_startproc sub rsp, 8 .cfi_def_cfa_offset 16 mov edi, OFFSET FLAT:std::__ioinit call std::ios_base::Init::Init() mov edx, OFFSET FLAT:__dso_handle mov esi, OFFSET FLAT:std::__ioinit mov edi, OFFSET FLAT:std::ios_base::Init::~Init() add rsp, 8 .cfi_def_cfa_offset 8 jmp __cxa_atexit .cfi_endproc .LFE1609: .size _GLOBAL__sub_I_main, .-_GLOBAL__sub_I_main .section .text.unlikely .LCOLDE3: .section .text.startup .LHOTE3: .section .init_array,"aw" .align 8 .quad _GLOBAL__sub_I_main .local main::itend .comm main::itend,24,16 .local guard variable for main::itend .comm guard variable for main::itend,8,8 .local std::__ioinit .comm std::__ioinit,1,1 .hidden __dso_handle .ident "GCC: (GNU) 5.2.0" .section .note.GNU-stack,"",@progbits
更改后文本
打开文件
g++ --version g++ -std=c++11 -O2 -Wall -pedantic -pthread main.cpp -S -masm=intel -o test.asm && cat test.asm | c++filt g++ (GCC) 5.2.0 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. .file "main.cpp" .intel_syntax noprefix .section .rodata.str1.1,"aMS",@progbits,1 .LC0: .string "visible effect\n" .section .text.unlikely,"ax",@progbits .LCOLDB1: .section .text.startup,"ax",@progbits .LHOTB1: .p2align 4,,15 .globl main .type main, @function main: .LFB1408: .cfi_startproc sub rsp, 40 .cfi_def_cfa_offset 48 mov rax, QWORD PTR std::cin[rip] mov QWORD PTR [rsp], OFFSET FLAT:std::cin mov rax, QWORD PTR [rax-24] test BYTE PTR std::cin[rax+32], 5 je .L2 mov BYTE PTR [rsp+16], 0 jmp .L13 .p2align 4,,10 .p2align 3 .L7: mov edx, 15 mov esi, OFFSET FLAT:.LC0 mov edi, OFFSET FLAT:std::cout call std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) .L13: cmp BYTE PTR [rsp+16], 0 jne .L7 xor eax, eax add rsp, 40 .cfi_remember_state .cfi_def_cfa_offset 8 ret .L2: .cfi_restore_state lea rsi, [rsp+8] mov edi, OFFSET FLAT:std::cin mov BYTE PTR [rsp+16], 1 call std::basic_istream<char, std::char_traits<char> >& std::basic_istream<char, std::char_traits<char> >::_M_extract<double>(double&) mov rax, QWORD PTR [rsp] mov rdx, QWORD PTR [rax] mov rdx, QWORD PTR [rdx-24] test BYTE PTR [rax+32+rdx], 5 sete BYTE PTR [rsp+16] jmp .L13 .cfi_endproc .LFE1408: .size main, .-main .section .text.unlikely .LCOLDE1: .section .text.startup .LHOTE1: .section .text.unlikely .LCOLDB2: .section .text.startup .LHOTB2: .p2align 4,,15 .type _GLOBAL__sub_I_main, @function _GLOBAL__sub_I_main: .LFB1609: .cfi_startproc sub rsp, 8 .cfi_def_cfa_offset 16 mov edi, OFFSET FLAT:std::__ioinit call std::ios_base::Init::Init() mov edx, OFFSET FLAT:__dso_handle mov esi, OFFSET FLAT:std::__ioinit mov edi, OFFSET FLAT:std::ios_base::Init::~Init() add rsp, 8 .cfi_def_cfa_offset 8 jmp __cxa_atexit .cfi_endproc .LFE1609: .size _GLOBAL__sub_I_main, .-_GLOBAL__sub_I_main .section .text.unlikely .LCOLDE2: .section .text.startup .LHOTE2: .section .init_array,"aw" .align 8 .quad _GLOBAL__sub_I_main .local std::__ioinit .comm std::__ioinit,1,1 .hidden __dso_handle .ident "GCC: (GNU) 5.2.0" .section .note.GNU-stack,"",@progbits
查找差异