-1
考慮以下80X86代碼段。假設代碼運行時,ECX不爲零。改善程序集中代碼的運行時間
L: MOV AL, [ESI]
XOR [EDI], AL
XOR AL, [EDI]
XOR [EDI], AL
MOV [ESI], AL
INC ESI
INC EDI
LOOP L, ECX
我需要重新寫上面的代碼段,用於更好的運行效率,在假設ECX最初是整除4
我該怎麼辦呢?
考慮以下80X86代碼段。假設代碼運行時,ECX不爲零。改善程序集中代碼的運行時間
L: MOV AL, [ESI]
XOR [EDI], AL
XOR AL, [EDI]
XOR [EDI], AL
MOV [ESI], AL
INC ESI
INC EDI
LOOP L, ECX
我需要重新寫上面的代碼段,用於更好的運行效率,在假設ECX最初是整除4
我該怎麼辦呢?
L:
MOV EAX, [ESI]
XOR [EDI], EAX
XOR EAX, [EDI]
XOR [EDI], EAX
MOV [ESI], EAX
ADD ESI, 4
ADD EDI, 4
SUB ECX, 4
JZ L
我不知道你在用什麼彙編,所以我試着寫一個通用的例子。
基本上,上述算法使用整個EAX寄存器一次移動4個字節。
該算法的簡要概述將會有所幫助。大會不太可讀。 :) –