Adunare - Înmulțire cu o constantă

Puteți face o multiplicare utilizând instrucțiuni multimedia cum ar fi imul și mul în codul limbajului de asamblare, ca Mul name registrar. Procesorul înmulțește în mod intern codurile de programare prin separarea parametrilor dimensiunilor, ca și pentru eax, ax și al și apoi stochează rezultatul în eax sau ax ca "scăzut" și rezultă ca edx sau dx ca "cel mai semnificativ", rezultatul ultimul înregistrat fiind setat, dacă multiplu este mai mare decât un octet.

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ă.

Articolul Precedent Articolul Următor

Cele Mai Importante Sfaturi