Babeş–Bolyai Tudományegyetem Kolozsvár
Matematikai és Informatikai Kar  
 2006–2007-es  tanév,    1 .  félév (informatika), 3. félév (matematika informatika)

I.	A tantárgy adatai

A tantárgy neve: Számítógép architektúra
Kód: MIC0001
Kreditszám: 6 (informatika), 5 (matematika informatika)
Hol tartják?  (előadás, szeminárium, laboratórium):
Mikor tarják? (előadás, szeminárium, laboratórium):

II.	Az oktatók adatai 
 
Előadás
Név, tudományos cím: dr. Robu Judit, adjunktus
Elérhetőség (e-mail, telefon): robu@cs.ubbcluj.ro
Fogadóóra : az órarendtől függ
Szeminárium
Név, tudományos cím: dr. Robu Judit, adjunktus
Elérhetőség (e-mail, telefon): robu@cs.ubbcluj.ro
Fogadóóra : az órarendtől függ
Laboratórium
Név, tudományos cím: 
Elérhetőség (e-mail, telefon): 
Fogadóóra : 

III.	A tantárgy leírása: 

Célok
–	számítógép architektúra modellek és a processzorok működési elveinek megismerése
–	assembly programozás elsajátítása
–	az architektúrának a magasszintű programozási nyelvek tervezésére és megvalósítására gyakorolt hatásának tudatosítása

Tartalom
–	a számítógépek és processzorok fejlődése
–	a számítógépek felépítése
–	az Intel Pentium processzor felépítése
–	assembly programozás
–	védett üzemmód

Kompetenciák
A tantárgy tanulmányozása során a hallgatók:
–	megismerik a számítógép és a processzor felépítés
–	megtanulják, hogyan lehet a számítógép komponenseit ellenőrizni, vezérelni
–	megtanulják, hogyan lehet a magas szintű nyelveken tervezett programokat optimizálni

Módszerek
előadás, gyakorlat, feladatmegoldás, plusz feladatok, beszélgetés

IV.	Kötelező könyvészet:
–	Alexandru Vancea, Florian Boian, Darius Bufnea, Anca Gog, Adrian Dărăbant, Andreea Sabău, Arhitectura calculatoarelor. Limbajul de asamblare 80x86, Ed.Risoprint, Cluj Napoca, 2005.
–	Anca Gog, Andreea Sabău, Darius Bufnea, Adrian Sterca, Adrian Dărăbant, Alexandru Vancea, Programarea în limbaj de asamblare 80x86. Exemple şi aplicatii, Ed.Risoprint, Cluj Napoca, 2005.
–	***, The Netwide Assembler: NASM, http://nasm.sourceforge.net/doc/html/nasmdoc0.html

V.	Az oktatásban használt eszközök:
Számítógép, vetítő, a kar számítógépes hálózata.

VI.	A tevékenységek és ellenőrzések/részleges vizsgák órarendje:

Előadás és szeminárium:
•	A számítógépek és processzorok fejlődése, jellemzőik
•	32 bites Intel processzorok
–	felépítés
–	regiszterek
–	jelzőbitek
–	címzésmódok
•	Utasításkészlet
–	adatmozgatás
–	aritmetikai műveletek
–	logikai műveletek és bitmanipuláció
–	vezérlésátadás
–	string műveletek
–	különfélék
•	Megszakítások
–	a megszakítás mechanizmusa
–	valós üzemmódú megszakítások és rendszerhívások
–	állományok kezelése
–	megszakítások eltérítése, rezidens programok
•	Pascal / C – assembly kapcsolat
•	Aritmetikai társprocesszor és lebegőpontos aritmetika
•	Védett üzemmód
–	szerepe
–	regiszterek
–	szegmentálás, deszkriptorok
–	lapozás
–	védelmi szintek
–	kapuk
–	task kezelés

Laborok:
a Netwide assemblert (NASM) használjuk – letölthető: https://sourceforge.net/projects/nasm/ ajánlott szövegszerkesztő Notepad2 – letölthető: http://www.flos-freeware.ch/notepad2.html

•	aritmetikai és logikai műveletek, Pascal környezetben megírt assembly kód
•	16 illetve 32 bites hexa és decimális számok írása és olvasása
•	bináris számok írása és olvasása, bitmanipuláció
•	karakterláncok (string)
•	modulok készítése
–	egész számok írása és olvasása
–	karakterláncok: ki/bemenet
–	műveletek karakterláncokkal
–	műveletek bitláncokkal
–	64 bites ki/bemenet
•	műveletek állományokkal
•	különféle rendszerhívások
•	lebegőpontos aritmetika

Részletesebb információk a honlapomon: http://cs.ubbcluj.ro/~robu/ac

VII.	Az értékelés módja:
•	év közben
–	minden előadáson rövid zárthelyi dolgozat;
–	lehetőség plusz feladatok megoldására;
•	vizsgán
–	gyakorlati vizsga: feleletválasztós teszt; program írása, a laborokon elkészített saját modulok felhasználásával;
–	ha mind a két részből megvan az 5-ös, akkor médiát számolok.
•	kedvezmények
–	aki a zárthelyiken eléri a lehetséges pontszám legalább 85%-át és megoldja a plusz feladatokat, az nem kell vizsgázzon.

VIII.	Szervezési kérdések, a különleges esetek kezelése:
–	laboron a jelenlét kötelező, legfeljebb 1 hiányzás megengedett;
–	órát pótolni ugyanazon a héten egy másik csoporttal lehet;
–	a laborfeladatok határidőre történő leadása esetén 8 pont jár, minden hét késéssel a pontszám feleződik. 3 hétnél nagyobb késés esetén 0 pont jár az adott feladatra;
–	vizsgára az jelentkezhet, aki a zárthelyiken megszerezte legalább az elérthető pontszám felét, minden laborfeladatát elfogadtuk és a laborfeladatokból elérte legalább a lehetséges pontszám felét;
–	ha laborfeladatra ugyanazt a megoldást több hallgatótól is megkapom mindegyiküknek büntetőfeladatot kell megoldania, a feladatra nem jár pontszám; ha ismétlődik a csalás csak pótszesszióban jelentkezhet vizsgára, a büntetőfeladatok bemutatása után;
–	aki zárthelyin puskázik 0 pontot kap a dolgozatára, második puskázás esetén nem vizsgázhat; 
–	aki vizsgán puskázik csak a következő vizsgaidőszakban jelentkezhet újra;
–	az óvásokat a hallgatóval oldom meg.

IX.	Ajánlott, de nem kötelező könyvészet:
•	Randall Hyde, The Art of Assembly Programming, No Starch Press Inc., 2003. http://webster.cs.ucr.edu/
•	***, IA-32 Intel® Architecture Software Developer's Manual, 
–	Volume 1: Basic Architecture ftp://download.intel.com/design/Pentium4/manuals/253665.htm 
–	Volume 2: Instruction Set Reference ftp://download.intel.com/design/Pentium4/manuals/253666.htm ftp://download.intel.com/design/Pentium4/manuals/253667.htm
–	Volume 3: System Programming Guide ftp://download.intel.com/design/Pentium4/manuals/253668.htm