Adunare - Înmulțire cu o constantă
Deoarece fișierele multimedia sunt uriașe în memorie, este posibil să fie necesar să se înmulțească valori în eax pentru a fi multiplicate în registru, iar rezultatul înregistrării trebuie să fie eax, cu valoarea precedentă suprascrisă. Cu toate acestea, dacă trebuie să multiplicați un registru cu o constantă, puneți rezultatul în registru și apoi utilizați o comandă rapidă cu instrucțiunea "lea".
Scurt intro
Limbile de asamblare sunt limbi de nivel scăzut pentru programarea computerelor și au fost dezvoltate pentru prima dată în anii 1950. Ele sunt cunoscute mai ales ca limbi de programare din a doua generație. O caracteristică importantă a limbajului Adunării este că au eliminat o mare parte din operațiile greșite și consumatoare de timp necesare pentru programarea de primă generație.
Înmulțire în asamblare
În ansamblu, puteți multiplica două numere utilizând instrucțiunile mul (numere nesemnate) și Imul. Acestea sunt utilizate după cum urmează:
mul name_registry
Procesorul crește conținutul de eax sau ax sau al (în funcție de mărimea registrului, care este dat în parametrii) și apoi stochează rezultatul în eax, ax, edx sau dx.
Utilizarea mul este destul de supărătoare, deoarece va trebui să mutați valoarea multiplicată pentru a eax, valoarea să se înmulțească cu un registru diferit, iar registrul care deține rezultatul trebuie să fie eax.
Cu toate acestea, dacă doriți să multiplicați un registru cu o constantă și să puneți rezultatul în registrul ales de dvs., puteți utiliza o comandă rapidă cu instrucțiunea "lea" (adresa de încărcare eficientă). Această instrucțiune este utilizată pentru a prelua adresa datelor din memorie.
lea destinația_registrării, [memory_address]; plasați memory_address în regiunea de destinație
Marele avantaj al acestui lucru este că, prin utilizarea unei constante, nu este nevoie să utilizați o adresă de memorie suplimentară. Imaginați-vă că doriți să multiplicați ecx cu 7 și să salvați rezultatul în ebx, comanda ar fi:
lea ebx, [ecx * 7]
Notă: Nu puteți multiplica două registre împreună utilizând această comandă rapidă.