Diff
checker
文本
文本
圖像
文檔
Excel
文件夾
Legal
Enterprise
桌面版
定價
登入
下載 Diffchecker 桌面版
比較文本
尋找兩個文字檔案之間的差異
工具
歷史
顯示
檢視
拆分
統一
即時編輯器
隱藏空白變更
摺疊未變更行
關閉換行
比對精度
智能
語法
無
變更外觀
處理
忽略
文字轉換
前往第一個差異
編輯輸入
Diffchecker Desktop
執行Diffchecker最安全的方式。取得Diffchecker桌面應用程式:您的差異永遠不會離開您的電腦!
取得桌面版
Span_IndexOf_31_vs_50
建立於
6 年前
差異永不過期
清除
匯出
分享
解釋
36 刪除
行
總計
刪除
字符
總計
刪除
要繼續使用此功能,請升級到
Diff
checker
Pro
查看價格
187 行
全部複製
25 新增
行
總計
新增
字符
總計
新增
要繼續使用此功能,請升級到
Diff
checker
Pro
查看價格
180 行
全部複製
複製
已複製
複製
已複製
## .NET Core
3.1.6
(CoreCLR
4.700
.20.
26901
, CoreFX
4.700
.20.
31603
), X64 RyuJIT
## .NET Core
5.0.0
(CoreCLR
5.0
.20.
40416
, CoreFX
5.0
.20.
40416
), X64 RyuJIT
```assembly
```assembly
; System.Memory.Span`1[[System.Char, System.Private.CoreLib]].IndexOfValue()
; System.Memory.Span`1[[System.Char, System.Private.CoreLib]].IndexOfValue()
sub rsp,28
sub rsp,28
mov rdx,[rcx+18]
mov rdx,[rcx+18]
test rdx,rdx
test rdx,rdx
jne short M00_L00
jne short M00_L00
xor r8d,r8d
xor r8d,r8d
xor eax,eax
xor eax,eax
jmp short M00_L01
jmp short M00_L01
M00_L00:
M00_L00:
lea r8,[rdx+10]
lea r8,[rdx+10]
mov eax,[rdx+8]
mov eax,[rdx+8]
M00_L01:
M00_L01:
複製
已複製
複製
已複製
movzx e
c
x,word ptr [rcx+2C]
movzx e
d
x,word ptr [rcx+2C]
mov [rsp+24],ecx
mov edx,[rsp+24]
mov rcx,r8
mov rcx,r8
mov r8d,eax
mov r8d,eax
call System.SpanHelpers.IndexOf(Char ByRef, Char, Int32)
call System.SpanHelpers.IndexOf(Char ByRef, Char, Int32)
nop
nop
add rsp,28
add rsp,28
ret
ret
複製
已複製
複製
已複製
; Total bytes of code
56
; Total bytes of code
48
```
```
```assembly
```assembly
; System.SpanHelpers.IndexOf(Char ByRef, Char, Int32)
; System.SpanHelpers.IndexOf(Char ByRef, Char, Int32)
push rsi
push rsi
vzeroupper
vzeroupper
xor r9d,r9d
xor r9d,r9d
movsxd r10,r8d
movsxd r10,r8d
mov rax,r10
mov rax,r10
mov r11,rcx
mov r11,rcx
test r11b,1
test r11b,1
jne short M01_L01
jne short M01_L01
cmp r8d,10
cmp r8d,10
jl short M01_L01
jl short M01_L01
mov rax,rcx
mov rax,rcx
neg eax
neg eax
mov r8d,eax
mov r8d,eax
shr r8d,1F
shr r8d,1F
add eax,r8d
add eax,r8d
sar eax,1
sar eax,1
mov eax,eax
mov eax,eax
and rax,7
and rax,7
cmp rax,4
cmp rax,4
jl short M01_L02
jl short M01_L02
M01_L00:
M01_L00:
lea r8,[rcx+r9*2]
lea r8,[rcx+r9*2]
movzx r11d,dx
movzx r11d,dx
movzx esi,word ptr [r8]
movzx esi,word ptr [r8]
cmp r11d,esi
cmp r11d,esi
je near ptr M01_L16
je near ptr M01_L16
movzx esi,word ptr [r8+2]
movzx esi,word ptr [r8+2]
cmp r11d,esi
cmp r11d,esi
je near ptr M01_L15
je near ptr M01_L15
movzx esi,word ptr [r8+4]
movzx esi,word ptr [r8+4]
cmp r11d,esi
cmp r11d,esi
je near ptr M01_L14
je near ptr M01_L14
movzx r8d,word ptr [r8+6]
movzx r8d,word ptr [r8+6]
cmp r11d,r8d
cmp r11d,r8d
je near ptr M01_L13
je near ptr M01_L13
add r9,4
add r9,4
add rax,0FFFFFFFFFFFFFFFC
add rax,0FFFFFFFFFFFFFFFC
M01_L01:
M01_L01:
cmp rax,4
cmp rax,4
jge short M01_L00
jge short M01_L00
M01_L02:
M01_L02:
test rax,rax
test rax,rax
jle short M01_L04
jle short M01_L04
movzx r11d,dx
movzx r11d,dx
M01_L03:
M01_L03:
movzx r8d,word ptr [rcx+r9*2]
movzx r8d,word ptr [rcx+r9*2]
cmp r8d,r11d
cmp r8d,r11d
je near ptr M01_L16
je near ptr M01_L16
inc r9
inc r9
dec rax
dec rax
test rax,rax
test rax,rax
jg short M01_L03
jg short M01_L03
M01_L04:
M01_L04:
cmp r9,r10
cmp r9,r10
jge near ptr M01_L12
jge near ptr M01_L12
lea rax,[rcx+r9*2]
lea rax,[rcx+r9*2]
mov r11,rax
mov r11,rax
複製
已複製
複製
已複製
test
r11b
,1F
mov r8d,r11d
test
r8b
,1F
je short M01_L06
je short M01_L06
movzx r11d,dx
movzx r11d,dx
vmovd xmm0,r11d
vmovd xmm0,r11d
vpbroadcastw xmm0,xmm0
vpbroadcastw xmm0,xmm0
vmovupd xmm1,[rax]
vmovupd xmm1,[rax]
vpcmpeqw xmm0,xmm0,xmm1
vpcmpeqw xmm0,xmm0,xmm1
vpmovmskb r11d,xmm0
vpmovmskb r11d,xmm0
test r11d,r11d
test r11d,r11d
jne short M01_L05
jne short M01_L05
add r9,8
add r9,8
jmp short M01_L06
jmp short M01_L06
M01_L05:
M01_L05:
複製
已複製
複製
已複製
xor
eax,eax
xor
r10d,r10d
tzcnt
eax
,r11d
tzcnt
r10d
,r11d
mov r10d,eax
shr r10d,1
shr r10d,1
F
mov
e
d
x,r10d
add
e
a
x,r10d
mov
eax,
edx
sar
eax,
1
add eax,r9d
add eax,r9d
jmp near ptr M01_L17
jmp near ptr M01_L17
M01_L06:
M01_L06:
mov rax,r10
mov rax,r10
已保存差異
原始文本
開啟檔案
## .NET Core 3.1.6 (CoreCLR 4.700.20.26901, CoreFX 4.700.20.31603), X64 RyuJIT ```assembly ; System.Memory.Span`1[[System.Char, System.Private.CoreLib]].IndexOfValue() sub rsp,28 mov rdx,[rcx+18] test rdx,rdx jne short M00_L00 xor r8d,r8d xor eax,eax jmp short M00_L01 M00_L00: lea r8,[rdx+10] mov eax,[rdx+8] M00_L01: movzx ecx,word ptr [rcx+2C] mov [rsp+24],ecx mov edx,[rsp+24] mov rcx,r8 mov r8d,eax call System.SpanHelpers.IndexOf(Char ByRef, Char, Int32) nop add rsp,28 ret ; Total bytes of code 56 ``` ```assembly ; System.SpanHelpers.IndexOf(Char ByRef, Char, Int32) push rsi vzeroupper xor r9d,r9d movsxd r10,r8d mov rax,r10 mov r11,rcx test r11b,1 jne short M01_L01 cmp r8d,10 jl short M01_L01 mov rax,rcx neg eax mov r8d,eax shr r8d,1F add eax,r8d sar eax,1 mov eax,eax and rax,7 cmp rax,4 jl short M01_L02 M01_L00: lea r8,[rcx+r9*2] movzx r11d,dx movzx esi,word ptr [r8] cmp r11d,esi je near ptr M01_L16 movzx esi,word ptr [r8+2] cmp r11d,esi je near ptr M01_L15 movzx esi,word ptr [r8+4] cmp r11d,esi je near ptr M01_L14 movzx r8d,word ptr [r8+6] cmp r11d,r8d je near ptr M01_L13 add r9,4 add rax,0FFFFFFFFFFFFFFFC M01_L01: cmp rax,4 jge short M01_L00 M01_L02: test rax,rax jle short M01_L04 movzx r11d,dx M01_L03: movzx r8d,word ptr [rcx+r9*2] cmp r8d,r11d je near ptr M01_L16 inc r9 dec rax test rax,rax jg short M01_L03 M01_L04: cmp r9,r10 jge near ptr M01_L12 lea rax,[rcx+r9*2] mov r11,rax test r11b,1F je short M01_L06 movzx r11d,dx vmovd xmm0,r11d vpbroadcastw xmm0,xmm0 vmovupd xmm1,[rax] vpcmpeqw xmm0,xmm0,xmm1 vpmovmskb r11d,xmm0 test r11d,r11d jne short M01_L05 add r9,8 jmp short M01_L06 M01_L05: xor eax,eax tzcnt eax,r11d mov r10d,eax shr r10d,1F add eax,r10d sar eax,1 add eax,r9d jmp near ptr M01_L17 M01_L06: mov rax,r10 sub rax,r9 and rax,0FFFFFFFFFFFFFFF0 test rax,rax jle short M01_L08 movzx r11d,dx vmovd xmm0,r11d vpbroadcastw ymm0,xmm0 M01_L07: vmovupd ymm1,[rcx+r9*2] vpcmpeqw ymm1,ymm0,ymm1 vpmovmskb r8d,ymm1 test r8d,r8d jne short M01_L09 add r9,10 add rax,0FFFFFFFFFFFFFFF0 test rax,rax jg short M01_L07 M01_L08: mov rax,r10 sub rax,r9 and rax,0FFFFFFFFFFFFFFF8 test rax,rax jle short M01_L11 movzx r11d,dx vmovd xmm0,r11d vpbroadcastw xmm0,xmm0 vmovupd xmm1,[rcx+r9*2] vpcmpeqw xmm0,xmm0,xmm1 vpmovmskb eax,xmm0 test eax,eax jne short M01_L10 add r9,8 jmp short M01_L11 M01_L09: xor eax,eax tzcnt eax,r8d mov r10d,eax shr r10d,1F add eax,r10d sar eax,1 add eax,r9d jmp short M01_L17 M01_L10: tzcnt eax,eax mov edx,eax shr edx,1F add eax,edx sar eax,1 add eax,r9d jmp short M01_L17 M01_L11: cmp r9,r10 jge short M01_L12 mov rax,r10 sub rax,r9 jmp near ptr M01_L01 M01_L12: mov eax,0FFFFFFFF vzeroupper pop rsi ret M01_L13: lea eax,[r9+3] jmp short M01_L17 M01_L14: lea eax,[r9+2] jmp short M01_L17 M01_L15: lea eax,[r9+1] jmp short M01_L17 M01_L16: mov eax,r9d M01_L17: vzeroupper pop rsi ret ; Total bytes of code 462 ```
更改後文本
開啟檔案
## .NET Core 5.0.0 (CoreCLR 5.0.20.40416, CoreFX 5.0.20.40416), X64 RyuJIT ```assembly ; System.Memory.Span`1[[System.Char, System.Private.CoreLib]].IndexOfValue() sub rsp,28 mov rdx,[rcx+18] test rdx,rdx jne short M00_L00 xor r8d,r8d xor eax,eax jmp short M00_L01 M00_L00: lea r8,[rdx+10] mov eax,[rdx+8] M00_L01: movzx edx,word ptr [rcx+2C] mov rcx,r8 mov r8d,eax call System.SpanHelpers.IndexOf(Char ByRef, Char, Int32) nop add rsp,28 ret ; Total bytes of code 48 ``` ```assembly ; System.SpanHelpers.IndexOf(Char ByRef, Char, Int32) push rsi vzeroupper xor r9d,r9d movsxd r10,r8d mov rax,r10 mov r11,rcx test r11b,1 jne short M01_L01 cmp r8d,10 jl short M01_L01 mov rax,rcx neg eax mov r8d,eax shr r8d,1F add eax,r8d sar eax,1 mov eax,eax and rax,7 cmp rax,4 jl short M01_L02 M01_L00: lea r8,[rcx+r9*2] movzx r11d,dx movzx esi,word ptr [r8] cmp r11d,esi je near ptr M01_L16 movzx esi,word ptr [r8+2] cmp r11d,esi je near ptr M01_L15 movzx esi,word ptr [r8+4] cmp r11d,esi je near ptr M01_L14 movzx r8d,word ptr [r8+6] cmp r11d,r8d je near ptr M01_L13 add r9,4 add rax,0FFFFFFFFFFFFFFFC M01_L01: cmp rax,4 jge short M01_L00 M01_L02: test rax,rax jle short M01_L04 movzx r11d,dx M01_L03: movzx r8d,word ptr [rcx+r9*2] cmp r8d,r11d je near ptr M01_L16 inc r9 dec rax test rax,rax jg short M01_L03 M01_L04: cmp r9,r10 jge near ptr M01_L12 lea rax,[rcx+r9*2] mov r11,rax mov r8d,r11d test r8b,1F je short M01_L06 movzx r11d,dx vmovd xmm0,r11d vpbroadcastw xmm0,xmm0 vmovupd xmm1,[rax] vpcmpeqw xmm0,xmm0,xmm1 vpmovmskb r11d,xmm0 test r11d,r11d jne short M01_L05 add r9,8 jmp short M01_L06 M01_L05: xor r10d,r10d tzcnt r10d,r11d shr r10d,1 mov edx,r10d mov eax,edx add eax,r9d jmp near ptr M01_L17 M01_L06: mov rax,r10 sub rax,r9 and rax,0FFFFFFFFFFFFFFF0 jle short M01_L08 movzx r11d,dx vmovd xmm0,r11d vpbroadcastw ymm0,xmm0 M01_L07: vmovupd ymm1,[rcx+r9*2] vpcmpeqw ymm1,ymm0,ymm1 vpmovmskb r8d,ymm1 test r8d,r8d jne short M01_L09 add r9,10 add rax,0FFFFFFFFFFFFFFF0 test rax,rax jg short M01_L07 M01_L08: mov rax,r10 sub rax,r9 and rax,0FFFFFFFFFFFFFFF8 jle short M01_L11 movzx r11d,dx vmovd xmm0,r11d vpbroadcastw xmm0,xmm0 vmovupd xmm1,[rcx+r9*2] vpcmpeqw xmm0,xmm0,xmm1 vpmovmskb eax,xmm0 test eax,eax jne short M01_L10 add r9,8 jmp short M01_L11 M01_L09: xor eax,eax tzcnt eax,r8d shr eax,1 mov r10d,eax mov eax,r10d add eax,r9d jmp short M01_L17 M01_L10: xor edx,edx tzcnt edx,eax shr edx,1 mov ecx,edx mov eax,ecx add eax,r9d jmp short M01_L17 M01_L11: cmp r9,r10 jge short M01_L12 mov rax,r10 sub rax,r9 jmp near ptr M01_L01 M01_L12: mov eax,0FFFFFFFF vzeroupper pop rsi ret M01_L13: lea eax,[r9+3] jmp short M01_L17 M01_L14: lea eax,[r9+2] jmp short M01_L17 M01_L15: lea eax,[r9+1] jmp short M01_L17 M01_L16: mov eax,r9d M01_L17: vzeroupper pop rsi ret ; Total bytes of code 451 ```
尋找差異