9. diel - Assembler - Ďalšie inštrukcie pre prácu s číslami
V minulej lekcii, Assembler - Podmienené a nepodmienené skoky , sme si povedali niečo o nepodmienených a podmienených skokoch, pomocou ktorých môžeme vytvoriť podmienky a cykly známe z vyšších jazykov.
V assembler tutoriále budeme inštrukciami ADC a
SBB sčítať a odčítať veľké čísla. K násobenie a delenie
použijeme inštrukcie MUL, IMUL, DIV,
IDIV. Spomenieme si tiež LEA.
Sčítanie a odčítanie veľkých čísel
Zo školy si určite všetci pamätáme, ako sa sčítavajú dve čísla.
Napíšeme si ich pod sebou a sčítame jednotlivé číslice sprava doľava. Ak
je súčet číslic väčší než 9, prenáša sa jednička do
vyššieho rádu.
Na počítaču slúži k prenosu jedničky bit CF (Carry Flag) v
registri EFLAGS.
Inštrukcia ADC (Add With Carry)
Inštrukcie ADC sa od inštrukcia ADD líši iba v
tom, že k výsledku navyše pripočíta jednotku, pokiaľ je nastavený
príznak CF.
Príklad - Súčet dvoch 64-bitových čísel
Na nasledujúcom príklade si ukážeme, ako možno sčítať dve 64-bitová čísla v 32-bitovej aplikácii (v kompilátora 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
Direktívou DQ definujeme 64-bitové globálne premenné. V
premenných x1 a x2 sú
...koniec náhľadu článku...
Pokračuj ďalej
Došiel si až sem a to je super! Veríme, že ti prvé lekcie ukázali niečo nového a užitočného.
Chceš v kurze pokračovať? Prejdi do prémiovej sekcie.
ročné PREDPLATNÉ
44 €
mesačne, platené ročne (528 €)14 000+ lekcií, cvičení a testov
6 000+ ti zostane navždy
Neobmedzený prístup ku všetkým aktuálnym
aj pripravovaným kurzom.
Kúpiť iba tento kurz
Získaj okamžitý prístup ku kurzu bez
časového obmedzenia.
5 €
Obsah článku spadá pod licenciu Premium, kúpou článku súhlasíš s Prevádzkovými podmienkami.
- Prístup k jednotlivým lekciám podľa spôsobu obstarania.
- Kvalitné znalosti v oblasti IT.
- Zručnosti, ktoré ti pomôžu získať vysnívanú a dobre platenú prácu.
Popis článku
Požadovaný článok má nasledujúci obsah:
V assembler tutoriále budeme inštrukciami ADC a SBB sčítať a odčítať veľké čísla. K násobenie a delenie použijeme inštrukcie MUL, IMUL, DIV a IDIV.