Lekce 9 - Assembler - Další instrukce pro práci s čísly
V minulé lekci, Assembler - Instrukce pro práci s čísly, jsme si probrali instrukce pro práci s čísly.
V assembler tutoriálu budeme instrukcemi ADC
a SBB
sčítat a odčítat velká čísla. K násobení a dělení použijeme
instrukce MUL
, IMUL
, DIV
,
IDIV
. Zmíníme si také LEA
.
Sčítání a odčítání velkých čísel
Ze školy si určitě všichni pamatujeme, jak se sčítají dvě čísla.
Napíšeme si je pod sebou a sčítáme jednotlivé číslice zprava doleva.
Pokud je součet číslic větší než 9
, přenáší se jednička
do vyššího řádu.
Na počítači slouží k přenosu jedničky bit CF
(Carry Flag)
v registru EFLAGS
.
Instrukce ADC
(Add With
Carry)
Instrukce ADC
se od instrukce ADD
liší pouze v
tom, že k výsledku navíc přičte jedničku, pokud je nastaven příznak
CF
.
Příklad - Součet dvou 64-bitových čísel
Na následujícím příkladu si ukážeme, jak lze sečíst dvě 64-bitová čísla v 32-bitové aplikaci (v kompilátoru MASM):
x1 dq 1234567890123 x2 dq 45678901345 y dq ? mov eax,dword ptr x1 add eax,dword ptr x2 mov dword ptr y,eax mov eax,dword ptr x1+4 adc eax,dword ptr x2+4 mov dword ptr y+4,eax
Direktivou DQ
definujeme 64-bitové globální proměnné. V
proměnných x1
a x2
jsou
...konec náhledu článku...
Pokračuj dál
Došel jsi až sem a to je super! Věříme, že ti první lekce ukázaly něco nového a užitečného.
Chceš v kurzu pokračovat? Přejdi do prémiové sekce.
Koupit tento kurz
Obsah článku spadá pod licenci Premium, koupí článku souhlasíš se smluvními podmínkami.
- Neomezený a trvalý přístup k jednotlivým lekcím.
- Kvalitní znalosti v oblasti IT.
- Dovednosti, které ti pomohou získat vysněnou a dobře placenou práci.
Popis článku
Požadovaný článek má následující obsah:
V assembler tutoriálu budeme instrukcemi ADC a SBB sčítat a odčítat velká čísla. K násobení a dělení použijeme instrukce MUL, IMUL, DIV a IDIV.
Kredity získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.