Összeszerelés - Szorzás állandóval

Az összeszerelést olyan multimédiás utasításokkal végezhetjük el, mint az imul és mul az összeszerelési nyelv kódjában, mint Mul name_register. A processzor belsőleg megszorozza a programozási kódokat úgy, hogy elkülöníti a méretek paramétereit, mint például az eax, ax és al, majd az eredményeket az „eax” vagy a „ax” értékben „alacsonynak” tartja, és az eredményeket edx vagy dx értékként „legjelentősebbnek” adja, az eredmény az utoljára rögzített, ha a többszörös nagyobb, mint egy bájt.

Mivel a multimédiás fájlok hatalmasak a memóriában, lehet, hogy az eax-ben lévő értékeket a regiszterben megszorozni kell, és a nyilvántartási eredménynek eax-nek kell lennie, az előző érték felülírásával. Mindazonáltal, ha a regisztert állandó értékkel kell megszorozni, akkor az eredményt a regiszterbe kell helyezni, majd a parancsot az "lea" utasítással kell használni.

Rövid bevezető

Az összeszerelési nyelvek alacsony szintű nyelvek a számítógépek programozásához, és először az 1950-es években alakultak ki. Leginkább második generációs programozási nyelvként ismertek. A közgyűlés nyelvének egyik fontos jellemzője, hogy az első generációs programozáshoz szükséges hibalehető és időigényes műveletek nagy részét kiküszöbölték.

Szorzás az összeszerelésben

Az összeszerelésben két számot megszorozhat a mul (unsigned numbers) és az Imul utasításokkal. Ezek a következők:

 mul name_registry 

A processzor növeli az eax vagy ax vagy al tartalmát (a rendszerleíró adatbázis méretétől függően, amely a paraméterekben van megadva), majd az eredményt eax, ax, edx vagy dx értékekben tárolja.

A mul használata eléggé zavaró, mert a többszörözött értéket eax-re kell áthelyezni, a többszörös nyilvántartásba kerülő értéket és az eredményt tartalmazó nyilvántartást eax-nek kell lennie.

Ha azonban csak egy állandó értéket szeretne megszorozni, és az eredményt az Ön által kiválasztott rendszerleíró adatbázisba helyezi, akkor az "lea" utasítással (betöltési hatékony cím) található parancsikon is használható. Ez az utasítás a memóriában tárolt adatok címének letöltésére szolgál.

 lea target_registry, [memory_address]; helyezze el a memory_address címet a target_registry-ben 

Ennek nagy előnye, hogy konstans használatával nem kell egy extra memóriacímet használni. Képzeld el, hogy az ecx-et 7-re szeretné szorozni, és az eredményt ebx-ben menteni, a parancs pedig:

 lea ebx, [ecx * 7] 

Megjegyzés: A gyorsbillentyűvel két regisztert nem lehet szorozni.

Előző Cikk Következő Cikk

Top Tippek