Nové výhodné předplatné namísto kreditů je tu! Více informací. Upravili jsme také naše provozní podmínky.
NOVINKA: Staň se datovým analytikem a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

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

Znalosti v hodnotě stovek tisíc získáš za pár korun

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.

Obsah článku spadá pod licenci Premium, koupí článku souhlasíš s Provozními podmínkami.

Co od nás v dalších lekcích dostaneš?
  • Přístup k jednotlivým lekcím dle způsobu pořízení.
  • 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.
Článek pro vás napsal 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