Assembly programozás: 2. gyakorlat

Hasonló dokumentumok
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}

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

Harmadik gyakorlat. Számrendszerek

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

Dr. Oniga István DIGITÁLIS TECHNIKA 2

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

Informatikai Rendszerek Alapjai

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

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

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

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

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

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

The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003

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

Fixpontos és lebegőpontos DSP Számrendszerek

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.

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

2. Fejezet : Számrendszerek

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

Aritmetikai utasítások I.

Számrendszerek. Bináris, hexadecimális

(jegyzet) Bérci Norbert szeptember 10-i óra anyaga. 1. Számrendszerek A számrendszer alapja és a számjegyek

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

A számrendszerekrl általában

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

Digitális technika VIMIAA02 1. EA Fehér Béla BME MIT

Digitális technika VIMIAA02 1. EA

I+K technológiák. Számrendszerek, kódolás

5. Fejezet : Lebegőpontos számok

1. forduló Az adat, az információ és a hír jelentése és tartalma. A kommunikáció

INFO1 Számok és karakterek

Digitális technika VIMIAA01

Digitális technika VIMIAA01

5. Fejezet : Lebegőpontos számok. Lebegőpontos számok

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

Digitális technika VIMIAA hét

Az Informatika Elméleti Alapjai

Informatikai alkalmazások - levelező ősz

Digitális technika VIMIAA hét

(jegyzet) Bérci Norbert szeptember i óra anyaga A számrendszer alapja és a számjegyek Alaki- és helyiérték...

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

DIGITÁLIS TECHNIKA I BINÁRIS SZÁMRENDSZER BEVEZETŐ ÁTTEKINTÉS BINÁRIS SZÁMRENDSZER HELYÉRTÉK. Dr. Lovassy Rita Dr.

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

Műveletek lebegőpontos adatokkal

Informatika elméleti alapjai. January 17, 2014

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

Hatványozás. A hatványozás azonosságai

Kombinációs hálózatok Számok és kódok

DIGITÁLIS TECHNIKA I SZÁMRENDSZEREK HELYÉRTÉK SZÁMRENDSZEREK RÓMAI SZÁMOK ÉS RENDSZERÜK. Dr. Lovassy Rita Dr.

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba

S z á m í t á s t e c h n i k a i a l a p i s m e r e t e k

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Programtervezési stratégiák. Top-down tervezés. Top-down tervezés. Bottom-up tervezés. 4.

Jelátalakítás és kódolás

OAF Gregorics Tibor : Memória használat C++ szemmel (munkafüzet) 1

Bevezetés az informatikába

2.3. Soros adatkommunikációs rendszerek CAN (Harmadik rész alapfogalmak II.)

A racionális számok és a fixpontos processzorok numerikus felületének a kapcsolata

Negatív alapú számrendszerek

Bevezetés az informatikába

Digitális technika VIMIAA01

Oszthatósági problémák

Matematikai alapok. Dr. Iványi Péter

Programozott soros szinkron adatátvitel

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Számelmélet I.

BEVEZETÉS AZ INFORMATIKÁBA 1. rész TARTALOMJEGYZÉK

I. el adás, A számítógép belseje

Vektorok. Octave: alapok. A fizika numerikus módszerei I. mf1n1a06- mf1n2a06 Csabai István

Gyakorló feladatok. Bipoláris tranzisztor

INFORMATIKA ALAPJAI - I

INFO1 Számok és karakterek

Diszkrét matematika I.

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

Hardverközeli programozás 1 1. gyakorlat. Kocsis Gergely

Számítógép Architektúrák (MIKNB113A)

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?

DIGITÁLIS TECHNIKA BINÁRIS SZÁMRENDSZER BEVEZETŐ ÁTTEKINTÉS BINÁRIS SZÁMRENDSZER HELYÉRTÉK. Dr. Lovassy Rita Dr.

26.B 26.B. Analóg és digitális mennyiségek jellemzıi

1. előadás. Adatok, számrendszerek, kódolás. Dr. Kallós Gábor

Számelmélet Megoldások

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Számítógép Architektúrák (MIKNB113A)

Diszkrét matematika I.

A SZÁMFOGALOM KIALAKÍTÁSA

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

HHF0CX. k darab halmaz sorbarendezésének a lehetősége k! Így adódik az alábbi képlet:

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás

DIGITÁLIS TECHNIKA I 6. ELİADÁS SZÁMRENDSZEREK BEVEZETİ ÁTTEKINTÉS. Római számok és rendszerük. Helyérték

Nagypontosságú aritmetika I.

Digitális Rendszerek és Számítógép Architektúrák

Számrendszerek. 1. ábra: C soportosítás 2-es számrendszerben. Helyiértékek: A szám leírva:

Amit a törtekről tudni kell Minimum követelményszint

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

1. INFORMATIKAI ALAPFOGALMAK HÍRKÖZLÉSI RENDSZER SZÁMRENDSZEREK... 6

Alapfogalmak. Dr. Kallós Gábor A Neumann-elv. Számolóeszközök és számítógépek. A számítógép felépítése

Kifejezések. Kozsik Tamás. December 11, 2016

Számítógépes alapismeretek

Számrendszerek. A római számok írására csak hét jelt használtak. Ezek segítségével, jól meghatározott szabályok szerint képezték a különböz számokat.

Objektumorientált Programozás I.

2018, Diszkrét matematika

Átírás:

Assembly programozás: 2. gyakorlat Számrendszerek: Kettes (bináris) számrendszer: {0, 1} Nyolcas (oktális) számrendszer: {0,..., 7} Tízes (decimális) számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F} Alaki érték: 0, 1, 2,..., 9,... Helyi érték: attól függ, hogy a szám melyik pozíción áll Példa: 583 10 = 5 * 100 + 8 * 10 + 3 * 1 = 5 * 10 2 + 8 * 10 1 + 3 * 10 0 583 16 = 5 * 256 + 8 * 16 + 3 * 1 = 5 * 16 2 + 8 * 16 1 + 3 * 16 0 Számrendszerek közötti konverzió: 583 16 =? 10 256 16 1 5 8 3 5 * 256 + 8 * 16 + 3 * 1 = 1411 10 583 10 =? 16 16 3 = 4096, 16 2 = 256, 16 1 = 16, 16 0 = 1 583 10 / 256 = 2 71 10 / 16 = 4 7 10 / 1 = 7 583 10 = 247 16 583 10 =? 2 2 10 = 1024, 2 9 = 512, 2 8 = 256, 2 7 = 128, 2 6 = 64, 2 5 = 32, 2 4 = 16, 2 3 = 8, 2 2 = 4, 2 1 = 2, 2 0 =1 583 10 / 512 = 1 71 10 / 256 = 0 71 10 / 128 = 0 71 10 / 64 = 1 7 10 / 32 = 0 7 10 / 16 = 0 7 10 / 8 = 0 7 10 / 4 = 1 3 10 / 2 = 1 1 10 / 1 = 1 583 10 = 1001000111 2

Algoritmikus megoldás: Ha decimális számrendszerből binárisba váltunk át, akkor a decimális számot mindig kettővel kell osztani egészen addig, amíg a hányadosként 1-et nem kapunk. Az egyes osztások után feljegyezzük a maradékot. A decimális szám bináris számrendszerbeli alakját úgy kapjuk, hogy a maradékokat visszafelé egymás után írjuk. A visszafelé olvasást az indokolja, hogy mire 1-et kaptunk hányadosként, addig n-szer osztottunk le 2-vel, így 2 n lesz az a legnagyobb 2-hatvány, amellyel a szám osztható. Visszafelé haladva a többi bináris számjegy is meghatározott. A visszafelé olvasás tulajdonképpen azt jelenti, hogy az addigi bináris számot egy helyiértékkel balra toljuk (szorozzuk 2-vel) és hozzáadjuk a maradékot, amely a legkisebb helyiértékre kerül, a 0-nak 0, az 1- nek pedig 1 lesz az értéke. 583 10 =? 2 583 10 =? 16 /2 Maradék /16 Maradék 583 10 1 583 7 291 10 1 36 4 145 10 1 2 2 72 10 0 36 10 0 18 10 0 9 10 1 4 10 0 2 10 0 1 10 1 583 10 = 1001000111 2 583 10 = 247 16 110010 2 =? 10 64 32 16 8 4 2 1 1 1 0 0 1 0 110010 2 = 32 + 16 + 2 = 50 Bináris-hexadeximális konverzió: A bináris számjegyeket a legkisebb helyiértékű számtól 4-essével konvertáljuk. Ha a számjegyek száma nem osztható 4-gyel, akkor legnagyobb helyértékű számjegyeket 0-val pótoljuk. Példa: 1010110100010010 = 1010 1101 0001 0010 = AD12 Hexadecimális-bináris konverziónál a hexadecimális számjegyeket 4 bináris számjeggyé alakítjuk. Törtek konvertálása A törtszámok konvertálásánál a számot egészrészre és törtrészre bontjuk fel. Vegyük itt is a decimális-bináris konverziót! Az egészrészt ugyanúgy váltjuk át, ahogy az egészszámokat az előző algoritmussal. A törtrész átváltásánál pedig mindig meg kell szorozni az aktuális törtrészt a bináris számrendszer alapjával (2-vel), és az egészrészeket kell feljegyezni. A egészrészeket egymás után összeolvasva kapjuk a törtrész bináris változatát. Az algoritmus akkor áll meg, ha a törtrész 0 lesz. Elképzelhető, hogy véges decimális szám törtrésze binárisan nem lesz véges.

35.132 10 =? 2 /2 Maradék egész *2 35 1 0.132 17 1 0.264 8 0 0.528 4 0 1.056 2 0 0.112 1 1 0.224 0.448 0.896 1.792 1.584...... Nem biztos, hogy véges tizedes tört binárisan is véges lesz! Horner elrendezés: Hogy néz ki a 287 10 szám Horner elrendezésben? (((2 * 10 + 8) * 10 + 7 ) Hogy néz ki a 572 8 szám Horner elrendezésben? (((5 * 8 + 7) * 8 + 2) Összeadás: Mi a 11101101 2 és a 000111 2 számok összege? 11101101 + 000111 11110100 Mi a 14AA5 16 és a F32 16 számok összege? 14AA5 + F 32 15 9D7 Előjeles fixpontos számok ábrázolásai: Előjeles abszolút érték: balról az első bit az előjel: 0, ha a szám pozitív, 1, ha negatív a 0 kétféleképpen ábrázolható: 10000000, 00000000 a legkisebb szám -127, a legnagyobb 127 Egyes komplemens: az első bit az előjel (0, ha pozitív; 1, ha negatív) A szám (-1)-szerese úgy kapható meg, hogy minden bitjét ellenkezőjére állítjuk. a 0 kétféleképpen ábrázolható: 00000000, 11111111 Kettes komplemens: az első bit az előjel, 0: pozitív, 1: negatív egy negatív szám úgy kapható meg, hogy az abszolút értékének egyes komplemenshez hozzáadunk 1-et. a legkisebb szám a -128, a legnagyobb a 127 a nulla egyértelműen ábrázolható Pl.: 127 = 01111111, 0 = 00000000, -128 = 10000000, -1 = 11111111

Feladat: számoljuk ki a 43 10 kettes komplemensét. Megoldás: 43 10 = 00101011 2 00101011 (természetes számoknál nincs változás) Feladat: számoljuk ki a -123 10 kettes komplemensét. Megoldás: a gyakorlaton 123 10 = 01111011 10000100 (ez egyes komplemens) -123 10 = 10000101 (ez már kettes komplemens) Többletes számábrázolás: a szám és a többlet összegét ábrázoljuk előjel nélkül, m bites szám esetén a többlet 2 m-1 vagy 2 m-1-1 (az alábbi példák 128-többletes értékeket mutatnak be) pl.: 35 10 = 00100011 többletes érték: 10100011 2 35 + 128-35 10 = 10100011 többletes érték: 01011101 2-35 + 128 = 93 128 = 10000000, többletes érték: 00000000-128 + 128 = 0 a legkisebb szám -128, a legnagyobb 127, a nulla egyértelműen meghatározható a 2 m-1 többletes ábrázolás azonos a kettes komplemenssel fordított előjellel. lebegőpontos számok kitevő-részénél használják Lebegőpontos számok: Általában normalizált alakban ábrázoljuk. A nulla általában csupa 0-ból áll, meghatározható a legkisebb és legnagyobb ábrázolható szám, valamint a legkisebb és legnagyobb hiba. Az IEEE 754 standard szerint single: 32 bit: előjel (1 bit), kitevőrész (8 bit 127-többletes), a törtrész abszolút értéke (23 bit) double: 64 bit: előjel (1 bit), kitevőrész (11 bit 1023-többletes), a törtrész abszolút értéke (52 bit) Normalizált számok: kitevőrész = kitevő + 127 (-126,..., 127). Közvetlenül a törtrész elé kell képzelni egy 1-est (implicit bit) és a bináris pontot. pl.: 1 = 001111111000...0000 2 1 = 2 0 előjel kitevőrész 1. törtrész (pozitív) (0+127=127) (2, implicit) 0.5 = 001111110000...0000 2 0.5 = 2-1 előjel kitevőrész 1. törtrész (pozitív) (-1+127=126) Normalizálatlan számok: ha a kitevőrész = 0, ilyenkor a kitevő = -126 nem 127 a bináris pontot implicit 0 előzi meg, ami nincs ábrázolva pl.: 2-127 = 000000000100...0000 2-2 -149 = 100000000000...0001 2 Ha a kitevőrész = 255, akkor vagy túl nagy számokról, vagy NaN-ról beszélünk.

Feladatok: 1. Váltsd át 01110101 számot hexadecimális számrendszerbe! 2. Váltsd át a A564 hexadecimális számot bináris számmá! 3. Add össze a B592 és E12 hexadecimális számokat! 4. Hogyan ábrázolnád a 6.45 decimális számot egyszeres (single) pontosságú, normalizált lebegőpontos számként?