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
尋找差異