整数の絶対値を取る abs という関数がありますが、x86 asm では次のような方法を考えた人がいます。
入力:eax, 出力:abs(eax) |
mov | ecx, eax |
sar | eax, 31 |
xor | ecx, eax |
sub | ecx, eax |
P6 だとこんな方法が使えます。
入力:eax, 出力:abs(eax) |
mov | ecx, eax |
neg | eax |
cmovs | eax, ecx |
by seclan
©1999-2024
seclan. All rights reserved.
4.17 msec