This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | Next revision Both sides next revision | ||
laboratoare:laborator-05 [2015/11/11 08:50] razvan.deaconescu [[2p] 10. Bonus: Numărul de numere pare și impare dintr-un vector] |
laboratoare:laborator-05 [2015/11/11 14:42] razvan.deaconescu [[0.5p] 1. Tutorial: Înmulțire două numere reprezentate pe un octet] |
||
---|---|---|---|
Line 110: | Line 110: | ||
Atunci cănd facem înmulțire procesul este următorul, așa cum este descris și [[https://en.wikibooks.org/wiki/X86_Assembly/Arithmetic|aici]]: | Atunci cănd facem înmulțire procesul este următorul, așa cum este descris și [[https://en.wikibooks.org/wiki/X86_Assembly/Arithmetic|aici]]: | ||
- | - Plasăm înmulțitorul în registrul ''AL'' (pentru operații pe un byte), registrul ''AX'' (pentru operații pentru cuvânt - 16 biți, 2 octeți) și registrul ''EAX''' (pentru operații pe dublu cuvânt - 32 de biți, 4 octeți). | + | - Plasăm deînmulțitul în registrul de deînmulțit, adică: |
- | - Deînmulțitul este transmis ca argument mnemonicii ''mul''. | + | - dacă facem operații pe un byte (8 biți, un octet), plasăm deînmulțitul în registrul ''AL''; |
+ | - dacă facem operații pe un cuvânt (16 biți, 2 octeți, plasăm deînmulțitul în registrul ''AZ''; | ||
+ | - dacă facem operații pe un dublu cuvânt (32 de biți, 4 octeți), plasăm deînmulțitul în registrul ''EAX''. | ||
+ | - Înmulțitorul este transmis ca argument mnemonicii ''mul''. Înmulțitorul trebuie să aibă aceeași dimensiune ca deînmulțitul. | ||
- Rezultatul este plasat în două registre (partea //high// și partea //low//). | - Rezultatul este plasat în două registre (partea //high// și partea //low//). | ||