Gyakorló feladatok. /2 Maradék /16 Maradék /8 Maradék

Hasonló dokumentumok
A számok kiírása is alapvetően karakterek kiírásán alapul, azonban figyelembe kell venni, hogy a számjegyeket, mint karaktereket kell kiírni.

3. gyakorlat. Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F}

Assembly Utasítások, programok. Iványi Péter

Assembly utasítások listája

code segment para public 'code' assume cs:code, ds:code, es:nothing, ss:nothing

Balaton Marcell Balázs. Assembly jegyzet. Az Assembly egy alacsony szintű nyelv, mely a gépi kódú programozás egyszerűsítésére született.

Assembly programozás: 2. gyakorlat

Aritmetikai utasítások I.

SZÁMÉRTÉKEK (ÁT)KÓDOLÁSA

Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez

Matematika 8. osztály

Assembly. Iványi Péter

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

Nagy András. Feladatok a logaritmus témaköréhez 11. osztály 2010.

Előszó avagy Murphy és az optimizmus. Tartalomjegyzék

assume CS:Code, DS:Data, SS:Stack Start: xor di, di mov si, 1 Torles int 10h mov dl, 40 xor bh, bh mov ah, 02h Kesleltet int 16h

SZÁMRENDSZEREK KÉSZÍTETTE: JURÁNYINÉ BESENYEI GABRIELLA

assume CS:Code, DS:Data, SS:Stack Start mov dl, 100 mov dh, 100 push dx Rajz

Assembly Rekurzív függvények, EXE, C programok. Iványi Péter

A regiszterek az assembly programozás változói. A processzor az egyes mőveleteket kizárólag regiszterek közremőködésével tudja végrehajtani.

Dr. Oniga István DIGITÁLIS TECHNIKA 2

A 32 bites x86-os architektúra regiszterei

Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt!

Feladatok a logaritmus témaköréhez 11. osztály, középszint

Máté: Számítógép architektúrák

Máté: Assembly programozás

Programozott soros szinkron adatátvitel

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása

találhatók. A memória-szervezési modell mondja meg azt, hogy miként

Digitális rendszerek. Utasításarchitektúra szintje

[cimke:] [feltétel] utasítás paraméterek [; megjegyzés]

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:

Máté: Számítógép architektúrák

Harmadik gyakorlat. Számrendszerek

[1] Bevezetés. A "debug" a DOS-ból közvetlenûl indítható a "debug" szó begépelésével. Kilépés hasonlóképpen a "q" paranccsal történik.

Aritmetikai utasítások

ÁTVÁLTÁSOK SZÁMRENDSZEREK KÖZÖTT, SZÁMÁBRÁZOLÁS, BOOLE-ALGEBRA

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

3 A C programozási nyelv szintaktikai egységei

I. Specifikáció készítés. II. Algoritmus készítés

3. Egyenletek, egyenletrendszerek, egyenlőtlenségek

1. Az utasítás beolvasása a processzorba

Fixpontos és lebegőpontos DSP Számrendszerek

Felvételi tematika INFORMATIKA

Tudnivalók az otthon kidolgozandó feladatokról

Irvine eljárások. ClrScr - Törli a képernyő tartalmát és a kurzort a képernyő bal felső sarkába helyezi (Clear Screen).

Adatelérés és memóriakezelés

2018, Diszkrét matematika

Megoldások. Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) 1. Számítsd ki a következő kifejezések pontos értékét!

Dr. Máté Eörs docens. Képfeldolgozás és Számítógépes Grafika Tanszék Árpád tér 2. II. em

Számrendszerek. Bináris, hexadecimális

1. fogalom. Add meg az összeadásban szereplő számok elnevezéseit! Milyen tulajdonságai vannak az összeadásnak? Hogyan ellenőrizzük az összeadást?

4. Fejezet : Az egész számok (integer) ábrázolása

1. ábra: Perifériára való írás idődiagramja

5.1.4 Laborgyakorlat: A Windows számológép használata hálózati címeknél

LEBEGŐPONTOS SZÁMÁBRÁZOLÁS

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Assembly. Iványi Péter

Digitális technika II., 2009/2010 tavasz 1. vizsga A csoport

Kedves Diákok! A feladatok legtöbbször egy pontot érnek. Ahol ettől eltérés van, azt külön jelöljük.

Archi2 Gyak. (Processzorok Utasításszintű Kezelése) 2014 ősz

Mi az assembly? Gyakorlatias assembly bevezető. Sokféle assembly van... Mit fogunk mi használni? A NASM fordítóprogramja. Assembly programok fordítása

Megszakítások és kivételek

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

A továbbiakban Y = {0, 1}, azaz minden szóhoz egy bináris sorozatot rendelünk

Bevezetés a programozásba I 3. gyakorlat. PLanG: Programozási tételek. Programozási tételek Algoritmusok

Számokkal kapcsolatos feladatok.

Informatikai Rendszerek Alapjai

Webprogramozás szakkör

Programozás I. gyakorlat

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

A fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása

DIGITÁLIS TECHNIKA feladatgyűjtemény

Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

Gyakorló feladatok 9.évf. halmaznak, írd fel az öt elemű részhalmazokat!. Add meg a következő halmazokat és ábrázold Venn-diagrammal:

Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás

Processzorok Utasításszintű Kezelése tavasz

Bevezetés a programozásba I.

Adattípusok. Dr. Seebauer Márta. Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

ELŐSZÓTJ "Előszó" \l

A számítógép alapfelépítése

Egész számok. pozitív egész számok: 1; 2; 3; 4;... negatív egész számok: 1; 2; 3; 4;...

Digitális technika VIMIAA hét

Assembly Címzési módok. Iványi Péter

Programozás II. Segédlet az első dolgozathoz

Műveletek mátrixokkal. Kalkulus. 2018/2019 ősz

1. gyakorlat

7. Számelmélet. 1. Lehet-e négyzetszám az a pozitív egész szám, amelynek tízes számrendszerbeli alakjában 510 darab 1-es és valahány 0 szerepel?

Karunkról Kari digitális könyvtár

Bevezetés a programozásba I.

Informatika 1 2. el adás: Absztrakt számítógépek

A feladatok legtöbbször egy pontot érnek. Ahol ettől eltérés van, azt külön jelöljük.

Assebly feladatok SHR SHL NOT NEG AND XOR. Ezt követően ismertetni kell a szoftver megszakítás fogalmát és szükségességét.

Digitális technika VIMIAA hét

3. óra Számrendszerek-Szg. történet

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

BEKÉRT ADAT KÉPERNYŐRE ÍRÁSA KÖRNYEZETI VÁLTOZÓK FÁJL REDEZETT KIÍRÁSA KÖNYVTÁRBAN BEJEGYZÉSEK SZÁMA FÁJLBAN SZÁM NÖVELÉSE. #!

Átírás:

Gyakorló feladatok Számrendszerek: Feladat: Ábrázold kettes számrendszerbe a 639 10, 16-os számrendszerbe a 311 10, 8-as számrendszerbe a 483 10 számot! /2 Maradék /16 Maradék /8 Maradék 639 1 311 7 483 3 319 1 19 3 60 4 159 1 1 1 7 7 79 1 39 1 19 1 9 1 4 0 2 0 1 1 639 10 = 1001111111 2 311 10 = 137 16 483 10 = 743 8 Feladat: Ábrázold kettes számrendszerben a 3.125 10 és a 12.5 10 törteket! /2 Maradék Egész *2 /2 Maradék Egész *2 3 1.125 12 0.5 1 1 0.25 6 0 1.0 0.5 3 1 1.0 1 1 3.125 10 = 11.001 2 12.5 10 = 1100.1 2 Feladat: 2-es, 8-as és 16-os számrendszerben levő számok átalakítása decimálissá. A decimális értéket úgy számoljuk ki, hogy összeadjuk a szám alaki értékének helyi értékével képzett szorzatát. Kettes számrendszer 8-as számrendszer 16-os számrendszer 8 4 2 1 Decimális érték 512 64 8 1 Decimális érték 4096 256 16 1 Decimális érték 1 0 1 1 11 6 3 7 5 3325 A 5 2 B 42283 Feladat: Ábrázold a következő számok előjeles abszolút értékét: 25, -46, -18, 87! -46 = 10101110-18 = 10010010

Feladat: Ábrázold a következő számok egyes komplemensét: 25, -46, -18, 87! -46 = 11010001-18 = 11101101 Feladat: Ábrázold a következő számok kettes komplemensét: 25, -46, -18, 87! -46 = 11010010-18 = 11101110 Feladat: Ábrázold a következő számok 128-többletes értékét: 25, -46, -18, 87! 128+25 = 153 = 10011001 128-46 = 82 = 01010010 128-18 = 110 = 01101110 128+87 = 215 = 11010111 Feladat: Az alábbi bitsorozatot Hamming-kód ellenőrzi. Melyik bit a hibás? (A bitsorozat tartalmazza a paritásbiteket is. A paritásbit 1, ha az ellenőrzött 1-esek száma páratlan.) Bitsorozat: 111110011101101101 A paritásbitek a 2-hatvány pozíciókon helyezkednek el. 111110011101101101 pozíciók: 123456789012345678 A paritásbitek a következő pozíciókat ellenőrzik: 1. bit: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19,... 2. bit: 2, 3, 6, 7, 10, 11, 14, 15, 18, 19,... 4. bit: 4, 5, 6, 7, 12, 13, 14, 15,... 8. bit: 8, 9, 10, 11, 12, 13, 14, 15,... 16. bit: 16, 17, 18, 19,... Ellenőrizzük le, hogy mely paritásbitek mutatnak rossz értéket! Az 1. bit jó. A 2. bit rossz, ezért a 2, 3, 6, 7, 10, 11, 14, 15, 18 bit valamelyike rossz. A 4. bit rossz, ezért a 4, 5, 6, 7, 12, 13, 14, 15 bit valamelyike rossz. A 8. bit jó. A 16. bit jó. A következő pozíciókon lehet a hibás bit: 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15. Néhányat ezek közül kizárhatunk: Az 1. és a 8. bit jó volt, ezért az általuk ellenőrzött pozíciókon biztos, hogy nem romlott el az érték. 2, 3//, 4, 5//, 6, 7//, //////////////////////////////. 10, 11, 12, 13, 14, 15 Maradt a 2, 4 és a 6. Ezek közül a 2. és a 4. bit is rossz, de csak egy bit romlott el, vagyis valamelyik jó. Csak a 6. bit az, amelyiket mindkét bit ellenőrzi, ezért ez volt a hibás bit.

Feladat: Az alábbi bitsorozatot Hamming-kód ellenőrzi. Melyik bit a hibás? (A bitsorozat tartalmazza a paritásbiteket is. A paritásbit 1, ha az ellenőrzött 1-esek száma páratlan.) Bitsorozat: 00111111110110011 A paritásbitek a 2-hatvány pozíciókon helyezkednek el. 00111111110110011 pozíciók: 12345678901234567 A paritásbitek a következő pozíciókat ellenőrzik: 1. bit: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19,... 2. bit: 2, 3, 6, 7, 10, 11, 14, 15, 18, 19,... 4. bit: 4, 5, 6, 7, 12, 13, 14, 15,... 8. bit: 8, 9, 10, 11, 12, 13, 14, 15,... 16. bit: 16, 17, 18, 19,... Ellenőrizzük le, hogy mely paritásbitek mutatnak rossz értéket! Az 1. bit jó. A 2. bit is jó. A 4. bit is jó. A 8. bit hibás, ezért a 8, 9, 10, 11, 12, 13, 14, 15 pozíciókon lévő bitek valamelyike rossz. A 16. bit jó. A lehetséges hibás bit a 8, 9, 10, 11, 12, 13, 14, 15 pozíciók valamelyikén van, de néhányat ki lehet zárni. Mivel az 1., a 2. és a 4. bit jó, ezért a 9, 10, 11, 12, 13, 14, 15 bitek nem lehetnek hibásak. Így egyedül a 8. bit romolhatott el. Feladat: Az alábbi bitsorozatot Hamming-kód ellenőrzi. Melyik bit a hibás? (A bitsorozat tartalmazza a paritásbiteket is. A paritásbit 1, ha az ellenőrzött 1-esek száma páratlan.) Bitsorozat: 11000111011001111 A paritásbitek a 2-hatvány pozíciókon helyezkednek el. 11000111011001111 pozíciók: 12345678901234567 A paritásbitek a következő pozíciókat ellenőrzik: 1. bit: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19,... 2. bit: 2, 3, 6, 7, 10, 11, 14, 15, 18, 19,... 4. bit: 4, 5, 6, 7, 12, 13, 14, 15,... 8. bit: 8, 9, 10, 11, 12, 13, 14, 15,... 16. bit: 16, 17, 18, 19,... Ellenőrizzük le, hogy mely paritásbitek mutatnak rossz értéket! Az 1. bit hibás, ezért a 1, 3, 5, 7, 9, 11, 13, 15, 17 pozíciók valamelyike hibás. A második is hibás, ezért a 2, 3, 6, 7, 10, 11, 14, 15 pozíciók valamelyikén hibás bit van. A 4. bit helyes, ezért az általa ellenőrzött pozíciókon nincs hiba. A 8. bit hibás, ezért a 8, 9, 10, 11, 12, 13, 14, 15 pozíciókon lévő bitek egyike hibás. A 16. bit jó, ezért a 16 és 17. bitek nem romlottak el. Mivel több paritásbit is hibát jelzet, így képezzük a lehetséges hibás bitek metszetét, vagyis azokat a pozíciókat, amelyeket több bit is ellenőriz, és hibásnak sejt. Ezek a 11, 15 bitpozíciók. Így leszűkült a kör. A 15. bitet ellenőrzi a 4. bit, ami jó, ezért ezt kizárhatjuk. Így maradt a 11. bit. Ez romlott el.

Digitális elektronika Feladat: Valósítsd meg az F kimeneti függvényt kétbemenetű NAND kapukkal! F= A B C D A C F= A B C D A C = A B C D A C = = A B C D A C = A B C D A C = = A B C D A C Mivel a három kifejezés VAGY kapcsolattal áll, ezért először vehetjük az első két zárójeles kifejezést. Először a zárójeles kifejezéseket alakítjuk át, majd a köztük lévő VAGY kapcsolatra alkalmazzuk a De Morgan azonosságokat. A De Morgan azonosságokat a legkönnyebb úgy végrehajtani, ha először kétszeresen negáljuk az egész műveletet, majd, alkalmazzuk az átalakítást. Ezután következhet a harmadik zárójeles tag átalakítása, majd az utolsó külső VAGY kapcsolatot alakítjuk át. Mivel jelen esetben a zárójeles tagok sorrendje felcserélhető, ezért másfajta csoportosítás/átalakítás is helyes lehet. Feladat: Valósítsd meg az F kimeneti függvényt kétbemenetű NOR kapukkal! F= A B C F = A B C= A B C= A B C= A B C

Assembly programozás: Feladat: Írj eljárást, amely egy hexadecimális számot kiír a képernyőre. hexat_kiir proc push ax ; push bx ; lementjuk az regiszterek tartalmat mov al, bl ; AL tartalmat atmasoljuk BL-be ; egy szamjegyet ugy irunk ki, hogy cmp bl, 9 ; ha a szamjegy jle szamjegy ; kisebb-egyenlo 9, akkor ugras "szamjegy"-re betu: ; kulonben betut ir ki mov al, bl ; AL-be atmasolom a szamot sub al, 10 ; kivonok belole 10-et add al, 'A' ; es ehhez hozzaadom az 'A' karakterkodjat mov ah, 14 ; BIOS parameterezes int 010H ; kiiratas jmp hexa_vege szamjegy: mov al, '0' ; a 0 karakterkodjahoz hozzaadjuk a szamjegyet add al, bl mov ah, 14 int 010H hexa_vege: pop bx ; visszatoltjuk a lementett tartalmakat pop ax ret hexat_kiir endp Magyarázat: Az eljárások elején érdemes lementeni a használandó regiszterek tartalmát. Egy hexadecimális számjegy vagy betű vagy szám lehet. Először meg kell nézni, hogy az értéke, az kisebb vagy egyenlő-e mint 9, ha igen, akkor számjegyként kell kiírni, ha nem, akkor betűként. Ha számjegyként írjuk ki, akkor a regiszter tartalmát hozzá kell adni a '0' karakterkódjához és ezt a karaktert kiírni a képernyőre. Ha betű, akkor a számból ki kell vonni 10-et, és ezt hozzá kell adni az 'A' betű karakterkódjához, majd a kapott karaktert kiíratni. Az eljárás végén a regiszterek tartalmát visszamentjük. Feladat: Írj kódrészletet, amely kiírja 6! (6 faktoriális) értékét! mov cx, 6 mov bx, 1 mov ax, 1 ciklus: cwd ; AX helyett (DX:AX)-ben taroljuk a szamot imul bx ; (DX:AX)-et megszorozzuk BX aktualis ; ertekevel inc bx ; megnoveljuk BX erteket eggyel dec cx ; csokkentjuk CX-et cmp cx, 0 ; CX == 0? jz vege ; ha igen, akkor vege jnz ciklus ; ha nem, akkor ugrunk ciklusra vege: call tobbjegyu_szamot_kiir ; kiirja az AX-ben levo szamot

Magyarázat: A ciklusszámlálóba (CX) eltároljuk azt a számot, amelynek a faktoriálisát keressük. Egy másik regisztert (BX) arra használunk, hogy ebben tároljuk azt az elemet, amellyel megszorozzuk az eddigi részeredményt. A részeredményt egy külön regiszterben (AX) tároljuk. A számok faktoriálisa nagy lehet, ezért nem 16 biten, hanem 32 biten (DX:AX) tároljuk a számot. A részeredmény így (DX:AX)-ben keletkezik, ezt kell megszorozni, a soron következő számmal. Ha a ciklusszámláló 0-ra csökken, akkor vége a számításnak. Feladat: Írj kódrészletet, amely egy megadott kisbetűs szöveget alakítsunk át nagybetűssé! Feltehetjük, hogy (DS:SI) az átalakítandó szöveg elején áll. A szöveg végét a $ karakter jelzi. mov si, offset msg cld ciklus: lodsb ; beolvasunk egy karaktert cmp al, '$' ; megnézzuk, hogy a vegjel-e je vege ; ha igen, akkor a szo vegere ertunk es ugrunk a ; "vege" cimkere mov bl, al ; ha nem akkor atmasoljuk a karaktert bl-be sub bl, 'a' ; megnezzuk, hogy hanyadik betu az abc-ben mov al, 'A' ; AL-be beirjuk az 'A' karakter kodjat add al, bl call kiir jmp ciklus ; es hozzaadjuk a beolvasott betu sorszamat ; igy a nagybetus valtozatat kapjuk meg a beolvasott ; betunek ; vegul kiirjuk Magyarázat: A megoldás eléggé egyszerű, ha kihasználjuk, hogy az ábécé betűi egymást követő karakterkódok. Nem kell mást tenni, mint beolvasni egy karaktert, megnézni hogy az a végjel-e, ha igen, akkor a szó végére értünk, ha nem, akkor úgy beolvasott karakter kódjából kivonjuk a 'a' karakter kódját. Ez egy szám lesz, amely megmondja, hogy a beolvasott betű hányadik helyen áll az ábécében. Ezt a számot hozzá kell adni a 'A' karakterkódjához, így megkapjuk a beolvasott karakter nagybetűs változatát. Ez a megoldás csak az angol ábécé betűire alkalmazható.