IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

9. diel - Assembler - Ďalšie inštrukcie pre prácu s číslami

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


 

...koniec náhľadu článku...
Pokračuj ďalej

Vedomosti v hodnote stoviek tisíc získaš za pár korún

Minul 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émiové sekcie.

Kúpiť tento kurz

Kúpiť všetky aktuálne dostupné lekcie s funkciou odovzdávanie úloh iba za 125 kreditov
Aktuálny stav konta 0 kreditov
Kúpou tohoto balíčku získaš prístup ku všetkým 13 článkom (13 lekcií) tohoto kurzu.

Obsah článku spadá pod licenciu Premium, kúpou článku súhlasíš so zmluvnými podmienkami.

Čo od nás v ďalších lekciách dostaneš?
  • Neobmedzený a trvalý prístup k jednotlivým lekciím.
  • 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.

Kredity získaš, keď podporíš našu sieť. To môžeš urobiť buď zaslaním symbolickej sumy na podporu prevádzky alebo pridaním obsahu na sieť.

Článok pre vás napísal Petr Laštovička
Avatar
Autor se věnuje vývoji webových aplikací v ASP.NET a aplikací pro Windows v C++ nebo C#.
Aktivity