Montáž - Násobenie konštantou
Keďže multimediálne súbory sú obrovské v pamäti, možno budete musieť posunúť hodnoty v eax, aby sa mohli vynásobiť v registri, a výsledok registra musí byť eax, pričom predchádzajúca hodnota sa prepíše. Ak však potrebujete násobiť register konštantou, vložte výsledok do registra a potom použite skratku s inštrukciou "lea".
Krátky úvod
Jazyky montáže sú jazyky na nízkej úrovni pre programovacie počítače a boli prvýkrát vyvinuté v 50. rokoch. Väčšinou sú známe ako programovacie jazyky druhej generácie. Dôležitou črtou jazyka zhromaždenia je, že eliminovali väčšinu operácií náchylných na chyby a časovo náročných operácií vyžadovaných v programovaní prvej generácie.
Násobenie pri montáži
V zostave môžete násobiť dve čísla pomocou inštrukcií mul (unsigned numbers) a Imul. Používajú sa takto:
mul name_registry
Procesor zvyšuje obsah eax alebo ax alebo al (v závislosti od veľkosti registra, ktorý je uvedený v parametroch) a potom výsledok uloží do eax, ax, edx alebo dx.
Použitie mul je dosť nepríjemné, pretože budete musieť presunúť vynásobenú hodnotu na eax, hodnota vynásobiť do iného registra a registra drží výsledok musí byť eax.
Ak však chcete násobiť register konštantou a dať výsledok do registra podľa vlastného výberu, môžete použiť klávesovú skratku s pokynom „lea“ (načítať efektívnu adresu). Táto inštrukcia sa používa na získanie adresy dát v pamäti.
lea destination_registry, [memory_address]; miesto memory_address v destination_registry
Veľkou výhodou je, že použitím konštanty nemusíte používať extra pamäťovú adresu. Predstavte si, že chcete násobiť ecx o 7 a výsledok uložiť do ebx, príkaz bude:
lea ebx, [ecx * 7]
Poznámka: Pomocou tohto odkazu nemôžete násobiť dva registre spoločne.