1. Treba naprogramovať vyhodnocovanie karetnej hry Očko pre dvoch hráčov.

type tKarty = array [1..10] of byte;
Pote tKarty obsahuje informáciu o kartách, ktoré má jeden hráč v ruke. Prvky poľa od začiatku znamenajú bodové hodnoty kariet. Za poslednou použitou hodnotou je nula a zvyšné prvky poľa za nulovým prvkom môžu mať nedefinovanú hodnotu.

Naprogramujte úsek programu v strojovom kóde:
Vstup:
V ESI je adresa poľa typu tKarty s kartami prvého hráča na konci hry
V EDI je adresa poľa typu tKarty s kartami druhého hráča na konci hry
Výstup:
V AL je výsledok hry.
Výsledok hry je 1 ak vyhral prvý hráč, 2 ak vyhral druhý hráč a 0 ak je výsledok nerozhodný.

Pomôcka: v očku vyhrá ten, kto má viac bodov ale nepresiahol 21. Nerozhodne je (pre naše účely) keď obaja presiahnu 21 alebo ak majú rovnaký počet bodov.



2.
type tPole = array [1..10] of byte;

Mierou podobnosti dvoch hodnôt typu bajt nazveme počet bitov v ktorých sa zhodujú.

Vstup:
V ESI je adresa poľa typu tPole (nazveme ho p1)
V EDI je adresa poľa typu tPole (nazveme ho p2)
Výstup:
V EAX je index p do polí p1 a p2 taký, že p1[p] a p2[p] majú najväčšiu mieru podobnosti zo všetkých indexov 1 <= p <= 10. Ak takých indexov p existuje viac, výsledkom je ľubovoľný z nich.



3. Naprogramujte úsek programu v strojovom kóde:

type pole = аrray[1..10000] of byte;
Vstup:
V ESI je adresa poľa P typu pole, v ECX je počet prvkov N, ktoré sú v poli P použité.
Hodnoty použitých prvkov poľa P sa spolu chápu ako jeden reťazec bitov dĺžky 8*N bitov, ktorý je poskladaný z hodnôt P[1] až P[N] zľava doprava.
Výstup:
V EAX je číslo vyjadrujúce najväčší počet za sebou idúcich jedničiek v bitovom reťazci P

Príklad:
Prvky poľa P sú zapísané v dvojkovej sústave a sú uvedené len hodnoty do N-tého prvku.
Vstup:
N = 4
P[1] = 11110101, P[2] = 11010011, P[3] = 11101101, P[4] = 00001111
Výstup:
EAX = 5
Miesto, kde sa vyskytuje 5 za sebou idúcich jedničiek je podčiarknuté



4. Naprogramujte úsek programu v strojovom kóde:
type retazec = аrray[1..10000] of char;
Vstup:
V ESI je adresa poľa P typu retazec, v ECX je počet prvkov N, ktoré sú v poli P použité.
Výstup:
V AL je hodnota 0 alebo 1 vyjadrujúca logickú hodnotu tvrdenia: "Prvých N znakov poľa P je palyndróm".
Hodnota poľa P sa nesmie zmeniť.

Poznámka: typ char je na úrovni strojového kódu uložený do jedného bajtu. S poľom P teda narábate rovnako akoby bolo deklarované ako аrray[1..10000] of byte, kde každý bajt obsahuje kód jedného písmena.

Príklady:
Vstup:
N = 5
P = ('Ť', 'A', 'H', 'A', 'Ť',....)
Výstup:
AL = 1

Vstup:
N = 5
P = ('M', 'A', 'K', 'A', 'Ť',....)
Výstup:
AL = 0