-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个字节。
该算法的简要概述将会有所帮助。大会不太可读。 :) –