Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
실시간 편집
변경 없는 행 숨기기
줄바꿈 비활성화
레이아웃
나란히 보기
합쳐 보기
비교 단위
스마트
단어
글자
구문 강조
언어 선택
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 Diffchecker를 사용하는 방법. 데스크톱 앱을 사용하면 비교 데이터가 외부로 전송되지 않습니다!
데스크톱 앱 받기
misleading_pre_increment
생성일
4년 전
비교 결과 만료 없음
초기화
내보내기
공유
설명
4 삭제
행
총
삭제
글자
총
삭제
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
101 행
복사
4 추가
행
총
추가
글자
총
추가
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
101 행
복사
복사
복사됨
복사
복사됨
F1
(std::unordered_set<int, std::hash<int>, std::equal_to<int>, std::allocator<int> > const&):
G1
(std::unordered_set<int, std::hash<int>, std::equal_to<int>, std::allocator<int> > const&):
mov rax, QWORD PTR [rdi+16]
mov rax, QWORD PTR [rdi+16]
xor edx, edx
xor edx, edx
test rax, rax
test rax, rax
je .L1
je .L1
.L3:
.L3:
add edx, DWORD PTR [rax+8]
add edx, DWORD PTR [rax+8]
mov rax, QWORD PTR [rax]
mov rax, QWORD PTR [rax]
test rax, rax
test rax, rax
jne .L3
jne .L3
.L1:
.L1:
mov eax, edx
mov eax, edx
ret
ret
복사
복사됨
복사
복사됨
F2
(std::set<int, std::less<int>, std::allocator<int> > const&):
G2
(std::set<int, std::less<int>, std::allocator<int> > const&):
push rbp
push rbp
mov rbp, rdi
mov rbp, rdi
push rbx
push rbx
add rbp, 8
add rbp, 8
xor ebx, ebx
xor ebx, ebx
sub rsp, 8
sub rsp, 8
mov rdi, QWORD PTR [rdi+24]
mov rdi, QWORD PTR [rdi+24]
cmp rdi, rbp
cmp rdi, rbp
je .L7
je .L7
.L9:
.L9:
add ebx, DWORD PTR [rdi+32]
add ebx, DWORD PTR [rdi+32]
call std::_Rb_tree_increment(std::_Rb_tree_node_base const*)
call std::_Rb_tree_increment(std::_Rb_tree_node_base const*)
mov rdi, rax
mov rdi, rax
cmp rax, rbp
cmp rax, rbp
jne .L9
jne .L9
.L7:
.L7:
add rsp, 8
add rsp, 8
mov eax, ebx
mov eax, ebx
pop rbx
pop rbx
pop rbp
pop rbp
ret
ret
복사
복사됨
복사
복사됨
F3
(std::__cxx11::list<int, std::allocator<int> > const&):
G3
(std::__cxx11::list<int, std::allocator<int> > const&):
mov rax, QWORD PTR [rdi]
mov rax, QWORD PTR [rdi]
xor edx, edx
xor edx, edx
cmp rax, rdi
cmp rax, rdi
je .L13
je .L13
.L15:
.L15:
add edx, DWORD PTR [rax+16]
add edx, DWORD PTR [rax+16]
mov rax, QWORD PTR [rax]
mov rax, QWORD PTR [rax]
cmp rax, rdi
cmp rax, rdi
jne .L15
jne .L15
.L13:
.L13:
mov eax, edx
mov eax, edx
ret
ret
복사
복사됨
복사
복사됨
F4
(std::vector<int, std::allocator<int> > const&):
G4
(std::vector<int, std::allocator<int> > const&):
mov rdx, QWORD PTR [rdi]
mov rdx, QWORD PTR [rdi]
mov rdi, QWORD PTR [rdi+8]
mov rdi, QWORD PTR [rdi+8]
cmp rdx, rdi
cmp rdx, rdi
je .L24
je .L24
lea rcx, [rdi-4]
lea rcx, [rdi-4]
mov rax, rdx
mov rax, rdx
sub rcx, rdx
sub rcx, rdx
mov rsi, rcx
mov rsi, rcx
shr rsi, 2
shr rsi, 2
add rsi, 1
add rsi, 1
cmp rcx, 8
cmp rcx, 8
jbe .L25
jbe .L25
mov rcx, rsi
mov rcx, rsi
pxor xmm0, xmm0
pxor xmm0, xmm0
shr rcx, 2
shr rcx, 2
sal rcx, 4
sal rcx, 4
add rcx, rdx
add rcx, rdx
.L21:
.L21:
movdqu xmm2, XMMWORD PTR [rax]
movdqu xmm2, XMMWORD PTR [rax]
add rax, 16
add rax, 16
paddd xmm0, xmm2
paddd xmm0, xmm2
cmp rcx, rax
cmp rcx, rax
jne .L21
jne .L21
movdqa xmm1, xmm0
movdqa xmm1, xmm0
psrldq xmm1, 8
psrldq xmm1, 8
paddd xmm0, xmm1
paddd xmm0, xmm1
movdqa xmm1, xmm0
movdqa xmm1, xmm0
psrldq xmm1, 4
psrldq xmm1, 4
paddd xmm0, xmm1
paddd xmm0, xmm1
movd eax, xmm0
movd eax, xmm0
test sil, 3
test sil, 3
je .L18
je .L18
and rsi, -4
and rsi, -4
lea rdx, [rdx+rsi*4]
lea rdx, [rdx+rsi*4]
.L20:
.L20:
lea rcx, [rdx+4]
lea rcx, [rdx+4]
add eax, DWORD PTR [rdx]
add eax, DWORD PTR [rdx]
cmp rdi, rcx
cmp rdi, rcx
je .L18
je .L18
lea rcx, [rdx+8]
lea rcx, [rdx+8]
add eax, DWORD PTR [rdx+4]
add eax, DWORD PTR [rdx+4]
cmp rdi, rcx
cmp rdi, rcx
je .L18
je .L18
add eax, DWORD PTR [rdx+8]
add eax, DWORD PTR [rdx+8]
ret
ret
.L24:
.L24:
xor eax, eax
xor eax, eax
.L18:
.L18:
ret
ret
.L25:
.L25:
xor eax, eax
xor eax, eax
jmp .L20
jmp .L20
저장된 비교 결과
원본
파일 열기
F1(std::unordered_set<int, std::hash<int>, std::equal_to<int>, std::allocator<int> > const&): mov rax, QWORD PTR [rdi+16] xor edx, edx test rax, rax je .L1 .L3: add edx, DWORD PTR [rax+8] mov rax, QWORD PTR [rax] test rax, rax jne .L3 .L1: mov eax, edx ret F2(std::set<int, std::less<int>, std::allocator<int> > const&): push rbp mov rbp, rdi push rbx add rbp, 8 xor ebx, ebx sub rsp, 8 mov rdi, QWORD PTR [rdi+24] cmp rdi, rbp je .L7 .L9: add ebx, DWORD PTR [rdi+32] call std::_Rb_tree_increment(std::_Rb_tree_node_base const*) mov rdi, rax cmp rax, rbp jne .L9 .L7: add rsp, 8 mov eax, ebx pop rbx pop rbp ret F3(std::__cxx11::list<int, std::allocator<int> > const&): mov rax, QWORD PTR [rdi] xor edx, edx cmp rax, rdi je .L13 .L15: add edx, DWORD PTR [rax+16] mov rax, QWORD PTR [rax] cmp rax, rdi jne .L15 .L13: mov eax, edx ret F4(std::vector<int, std::allocator<int> > const&): mov rdx, QWORD PTR [rdi] mov rdi, QWORD PTR [rdi+8] cmp rdx, rdi je .L24 lea rcx, [rdi-4] mov rax, rdx sub rcx, rdx mov rsi, rcx shr rsi, 2 add rsi, 1 cmp rcx, 8 jbe .L25 mov rcx, rsi pxor xmm0, xmm0 shr rcx, 2 sal rcx, 4 add rcx, rdx .L21: movdqu xmm2, XMMWORD PTR [rax] add rax, 16 paddd xmm0, xmm2 cmp rcx, rax jne .L21 movdqa xmm1, xmm0 psrldq xmm1, 8 paddd xmm0, xmm1 movdqa xmm1, xmm0 psrldq xmm1, 4 paddd xmm0, xmm1 movd eax, xmm0 test sil, 3 je .L18 and rsi, -4 lea rdx, [rdx+rsi*4] .L20: lea rcx, [rdx+4] add eax, DWORD PTR [rdx] cmp rdi, rcx je .L18 lea rcx, [rdx+8] add eax, DWORD PTR [rdx+4] cmp rdi, rcx je .L18 add eax, DWORD PTR [rdx+8] ret .L24: xor eax, eax .L18: ret .L25: xor eax, eax jmp .L20
수정본
파일 열기
G1(std::unordered_set<int, std::hash<int>, std::equal_to<int>, std::allocator<int> > const&): mov rax, QWORD PTR [rdi+16] xor edx, edx test rax, rax je .L1 .L3: add edx, DWORD PTR [rax+8] mov rax, QWORD PTR [rax] test rax, rax jne .L3 .L1: mov eax, edx ret G2(std::set<int, std::less<int>, std::allocator<int> > const&): push rbp mov rbp, rdi push rbx add rbp, 8 xor ebx, ebx sub rsp, 8 mov rdi, QWORD PTR [rdi+24] cmp rdi, rbp je .L7 .L9: add ebx, DWORD PTR [rdi+32] call std::_Rb_tree_increment(std::_Rb_tree_node_base const*) mov rdi, rax cmp rax, rbp jne .L9 .L7: add rsp, 8 mov eax, ebx pop rbx pop rbp ret G3(std::__cxx11::list<int, std::allocator<int> > const&): mov rax, QWORD PTR [rdi] xor edx, edx cmp rax, rdi je .L13 .L15: add edx, DWORD PTR [rax+16] mov rax, QWORD PTR [rax] cmp rax, rdi jne .L15 .L13: mov eax, edx ret G4(std::vector<int, std::allocator<int> > const&): mov rdx, QWORD PTR [rdi] mov rdi, QWORD PTR [rdi+8] cmp rdx, rdi je .L24 lea rcx, [rdi-4] mov rax, rdx sub rcx, rdx mov rsi, rcx shr rsi, 2 add rsi, 1 cmp rcx, 8 jbe .L25 mov rcx, rsi pxor xmm0, xmm0 shr rcx, 2 sal rcx, 4 add rcx, rdx .L21: movdqu xmm2, XMMWORD PTR [rax] add rax, 16 paddd xmm0, xmm2 cmp rcx, rax jne .L21 movdqa xmm1, xmm0 psrldq xmm1, 8 paddd xmm0, xmm1 movdqa xmm1, xmm0 psrldq xmm1, 4 paddd xmm0, xmm1 movd eax, xmm0 test sil, 3 je .L18 and rsi, -4 lea rdx, [rdx+rsi*4] .L20: lea rcx, [rdx+4] add eax, DWORD PTR [rdx] cmp rdi, rcx je .L18 lea rcx, [rdx+8] add eax, DWORD PTR [rdx+4] cmp rdi, rcx je .L18 add eax, DWORD PTR [rdx+8] ret .L24: xor eax, eax .L18: ret .L25: xor eax, eax jmp .L20
비교하기