考虑以下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整除。
我该怎么做?
答案 0 :(得分: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个字节。