Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Calculatoare şi tehnologia informaţiei
Programul de studii: Ingineria informatiei - in limba romana
Limba de predare: Română

SYLLABUS

I. Date generale
Codul	Disciplina	
MIC0010	Arhitectura sistemelor de calcul	

Semestrul	Ore: C+S+L	Categoria	Statutul	
3	2+1+1	specialitate	obligatorie	

II. Cadre didactice cu norma de bază în Universitate
Numele şi	Titlul	Gradul	Catedra	Tipul activităţii	
prenumele	ştiinţific	didactic		C	S	L	
VANCEA Alexandru Ioan	Dr. 	Lect.	Sisteme Informatice	*			

Cadre didactice asociate
Numele şi	Titlul	Instituţia	Tipul	Tipul activităţii	
prenumele	ştiinţific		postului	C	S	L	

III. Obiectivele disciplinei
- Insusirea de catre studenti a modelelor arhitecturale ale calculatoarelor, functionarea procesorului, a utilizarii sistemelor de reprezentare a informatiei in calculator.
- Initiere in programarea in limbaj de asamblare, ceea ce asigura intelegerea arhitecturii si functionarii unui microprocesor.
- Initiere in arhitecturile sistemelor de intreruperi, cu particularizarea la masinile 80x86.
- Conştientizarea influenţei pe care principiile funcţionale de bază ale arhitecturii von Neumann le au asupra modului de implementare a limbajelor de programare de nivel înalt; Conştientizarea impactului arhitectural asupra tehnicilor de proiectare şi implementare a limbajelor de programare de nivel înalt.	

IV. Conţinutul disciplinei
Reprezentarea informatiei în calculator. Arhitectura sistemelor de calcul: unitate centrală, memorie, dispozitive periferice, structura microprocesorului 80x86 şi calculul de adresă. Reprezentarea internă a unei instrucţiuni maşină. Instrucţiuni ale limbajului de asamblare: de transfer, aritmetice, de conversie, asupra biţilor, de salt condiţionat şi necondiţionat, de comparare, de lucru cu şiruri de octeţi şi cuvinte. Utilizarea şi redirectarea întreruperilor 80x86. Structura sistemului de întreruperi. Etape şi cerinţe ale programării multimodul cu legarea de module scrise în limbaj de asamblare interfaţate cu limbaje de nivel de înalt. Prezentarea şi analiza facilităţilor de programare de nivel scăzut în cadrul implementărilor unor limbaje de nivel înalt. Extensii şi evoluţia familiei de procesoare x86. Elemente de programare în limbaj de asamblare sub Windows.	

V. Bibliografie
1. Al.Vancea, Fl.Boian, D.Bufnea, A.Gog, A.Dărăbant, A.Sabău – Arhitectura calculatoarelor. Limbajul de asamblare 80x86., Editura Risoprint, Cluj-Napoca, 2005.
2. A.Gog, A.Sabău, D.Bufnea, A.Sterca, A.Dărăbant, Al.Vancea – Programarea în limbaj de asamblare 80x86. Exemple şi aplicatii., Editura Risoprint, Cluj-Napoca, 2005. 
3. BOIAN F. M. Sisteme de operare interactive. Ed. Libris, Cluj, 1994
4. BOIAN F. M. De la aritmetica la calculatoare. Ed. Presa Universitara Clujeana, Cluj, 1996
5. BOIAN F. M., VANCEA A., IURIAN S., IURIAN M. Programare avansata de sistem si aplicatii IBM-PC, lito. Universitatea "Babes-Bolyai", 1996
6. BOIAN F.M. VANCEA A. Arhitectura calculatoarelor, suport de curs. Facultatea de Matematica si Informatica, Centrul de Formare Continua si Invatamânt la Distanta,. Ed. Centrului de Formare Continua si Invatamânt la Distanta, Cluj, 2002,
7. KNUTH D.E. Tratat de programarea calculatoarelor; vol 3: Algoritmi seminumerici. Ed. Tehnica, Bucuresti, 1985
8. STALLINGS W. Computer Organization and Arhitecture; Principles, Structure and Function. Mc. Millan Pub. Comp.  New-York, London, 1987	

VI. Tematica activităţilor didactice pe săptămâni
Planificarea dată în continuare este exprimată relativ la cele 14 săptămâni (S1-S14) componente ale semestrului. 

1.	Reprezentarea datelor: date elementare, reprezentari binare si ordini de plasare, organizarea şi memorarea datelor (S1), codificarea caracterelor, reprezentarea cu semn şi fără semn, cod complementar, conversii, conceptul de depăşire (S2); (seminar şi laborator S1/S2);
2.	Arhitectura sistemelor de calcul: organizarea unui SC, unitatea centrală, ceasul sistem, calculator pe n biţi, memoria, dispozitivele periferice (S3), performanţele unui SC, arhitectura microprocesorului 80x86 – structură, regiştri, calculul de adresă, moduri de adresare, adrese far şi near (S4); (seminar şi laborator S3/S4);
3.	Elementele limbajului de asamblare: formatul unei linii sursă, expresii, tipuri de accesare a operanzilor, operatori (S5), directive pentru definirea segmentelor, pt.definirea datelor, LABEL, EQU, PROC, INCLUDE, blocuri repetitive şi macrouri (S6);  (seminar şi laborator S5/S6);
4.	Instrucţiuni ale limbajului de asamblare: instrucţiuni de transfer, conversii, operaţii aritmetice cu semn şi fără semn, operaţii de deplasare şi rotire de biţi, operaţii logice pe biţi (S7), instrucţiuni de salt condiţionat şi necondiţionat, instrucţiuni de ciclare, instrucţiuni pe şiruri (S8); (seminar şi laborator S7/S8);
5.	Întreruperi: clasificare, instrucţiuni specifice lucrului cu întreruperi, formatele COM şi EXE (S9) ; Redirectarea întreruperilor: programe TSR, instalarea şi dezinstalarea programelor TSR, depanarea programelor TSR, redirectarea întreruperilor în cadrul SO Windos (S10); (seminar şi laborator S9/S10);
6.	Implementarea apelului de subprograme şi programare multimodul: cod de apel, cod de intrare, cod de ieşire, directivele PUBLIC, EXTRN, GLOBAL, legarea de module TASM cu module scrise în limbaje de nivel înalt (S11);
7.	Programare low-level în limbaje de nivel înalt: inserare de cod maşină, asambloare inline, proceduri şi funcţii assembler, accesarea regiştrilor şi apelarea de întreruperi, proceduri şi funcţii interrupt (S12); Tematicile 6 şi 7 vor fi abordate în (seminar şi laborator S11/S12);
8.	Extensii x86: modul de lucru protejat, extensii arhitecturale şi noi instrucţiuni introduse la nivelul evoluţiei familiei de procesoare 80x86 (S13);
       9.   Programarea în limbaj de asamblare sub Windows: apeluri sistem în modul de lucru protejat, limitări ale sistemului de întreruperi, asambloarele MASM şi NASM, asamblorul inline Visual C++ (S14); Tematicile 8 şi 9 vor fi abordate în (seminar şi laborator S13/S14);	

VII. Metode didactice folosite
Expunerea: descrierea, explicaţia, prelegerea magistrală, prelegerea dialog, prelegerea cu demonstraţii, prelegeri introductive, prelegeri curente, prelegeri de sinteză. 
Conversaţia: dezbaterea, dialogul, conversaţii introductive, conversaţii de fixare şi consolidare a cunoştinţelor, conversaţii de sistematizare şi sinteză, conversaţii de aplicare.
Problematizarea: utilizarea întrebărilor-problemă, problemelor şi situaţiilor-problemă. 
Descoperirea: redescoperirea dirijată şi independentă, descoperirea creativă, descoperirea inductivă, descoperirea deductivă, descoprirea analogică, descoperirea prin documentare, descoperirea experimentală.
  Alte metode: studiul de caz; cooperarea, simularea, brainstorming-ul, studiul individual, exerciţiul.	

VIII. Evaluare
Examen scris si practic, combinat cu activitatea de la laborator din timpul semestrului. Nota finala se obtine ca medie dintre:
- nota de la lucrarea scrisă – 60%;
- nota de la subiectul aplicativ de la examenul practic – 20%;
- nota pe activitatea de la laborator (corectitudinea si consistenta programelor, completitudinea documentarilor) – 20%;.

Detalii cerinte pentru promovarea cursului se gasesc la
http://www.cs.ubbcluj.ro/~anca/ac/cerinte.htm

IX. Bibliografie suplimentară
1.	Randall Hyde – The Art of Assembly Programming, No Starch Press Inc., 2003.
2.	Kip Irvine – Assembly Language for Intel-Based Computers, Prentice-Hall Inc., 2003.
3.	http://www.doorknobsoft.com/asm_tutorial.html
4.	http://www.deinmeister.de/wasmtute.htm
5.	http://www.drpaulcarter.com/pcasm/
      6.   http://www.xs4all.nl/~smit/asm01001.htm	

	Decan,							Sef de catedra,

	
Data,							Titular curs,
								Lect. Dr.  GOG Anca