Optymalizacja rozmiaru kodu
Wybierz krótsze instrukcje

PUSH, POP, INC, DEC z rejestrami ogólnego przeznaczenia są jednobajtowe.

Instrukcje ADD, ADC, SUB, SBB, AND, OR, XOR, CMP, TEST, MOV zajmują jeden bajt mniej jeżeli są używane z rejestrem EAX.

Instrukcje po lewej są krótsze
add eax, 1000
mov eax, [mem]
add ebx, 1000
mov ebx, [mem]

Przy skalowanym adresowaniu pewne kombinacje rejestrów, skalowań dają dłuższe instrukcje np.

Instrukcje po lewej są krótsze
mov eax, [array+ebx]
mov eax, [ebx+12]
mov eax, [ebx]
lea eax, [ebx+ebx]
mov eax, [4*ebx]
mov eax, [esp+12]
mov eax, [ebp]
lea eax, [2*ebx]

Instrucje zmiennoprzecinkowe na FPU są krótsze niż odpowiadające im instrukcje na SSE

fadd st(0), st(1) ; 2 bytes
addsd xmm0, xmm1  ; 4 bytes


Tomasz Kapela, Kraków 2011-2020