Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Informatică
Programul de studii: Informatică - linia de studiu română
Limba de predare: Română

SYLLABUS

I. Date generale
Codul	Disciplina	
MIC0010	Arhitectura sistemelor de calcul	

Semestrul	Ore: C+S+L+P	Categoria	Statutul	
1	2+1+1+0	fundamentala	obligatorie	

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

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.
- Constientizarea influentei pe care principiile functionale de baza ale arhitecturii von Neumann le au asupra modului de implementare a limbajelor de programare de nivel înalt; Constientizarea impactului arhitectural asupra tehnicilor de proiectare si implementare a limbajelor de programare de nivel înalt.	

IV. Conţinutul disciplinei
Reprezentarea informatiei în calculator. Arhitectura sistemelor de calcul: unitate centrala, memorie, dispozitive periferice, structura microprocesorului 80x86 si calculul de adresa. Reprezentarea interna a unei instructiuni masina. Instructiuni ale limbajului de asamblare: de transfer, aritmetice, de conversie, asupra bitilor, de salt conditionat si neconditionat, de comparare, de lucru cu siruri de octeti si cuvinte. Utilizarea si redirectarea întreruperilor 80x86. Structura sistemului de întreruperi. Etape si cerinte ale programarii multimodul cu legarea de module scrise în limbaj de asamblare interfatate cu limbaje de nivel de înalt. Prezentarea si analiza facilitatilor de programare de nivel scazut în cadrul implementarilor unor limbaje de nivel înalt. Extensii si evolutia 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.Darabant, A.Sabau – Arhitectura calculatoarelor. Limbajul de asamblare 80x86., Editura Risoprint, Cluj-Napoca, 2005.
2. A.Gog, A.Sabau, D.Bufnea, A.Sterca, A.Darabant, Al.Vancea – Programarea în limbaj de asamblare 80x86. Exemple si aplicatii., Editura Risoprint, Cluj-Napoca, 2005. 
3. Randal Hyde – The Art of Assembly Programming, No Starch Press, 2003.
    (http://homepage.mac.com/randyhyde/webster.cs.ucr.edu/www.artofasm.com/DOS/index.html)
4. BOIAN F. M. Sisteme de operare interactive. Ed. Libris, Cluj, 1994
5. BOIAN F. M. De la aritmetica la calculatoare. Ed. Presa Universitara Clujeana, Cluj, 1996
6. BOIAN F. M., VANCEA A., IURIAN S., IURIAN M. Programare avansata de sistem si aplicatii IBM-PC, lito. Universitatea "Babes-Bolyai", 1996
7. 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,
8. KNUTH D.E. Tratat de programarea calculatoarelor; vol 3: Algoritmi seminumerici. Ed. Tehnica, Bucuresti, 1985
9. 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 data în continuare este exprimata relativ la cele 14 saptamâni (S1-S14) componente ale semestrului.  

            Tematica activitatilor didactice la CURS si SEMINAR:

Reprezentarea datelor: date elementare, reprezentari binare si ordini de plasare, organizarea si memorarea datelor (S1), codificarea caracterelor, reprezentarea cu semn si fara semn, cod complementar, conversii, conceptul de depasire (S2); (seminar saptamanile  S1/S2);

Arhitectura sistemelor de calcul: organizarea unui SC, unitatea centrala, ceasul sistem, calculator pe n biti, memoria, dispozitivele periferice (S3), performantele unui SC, arhitectura microprocesorului 80x86 – structura, registri, calculul de adresa, moduri de adresare, adrese far si near (S4); (seminar saptamanile  S3/S4);

Elementele limbajului de asamblare: formatul unei linii sursa, expresii, tipuri de accesare a operanzilor, operatori (S5), directive pentru definirea segmentelor, pt.definirea datelor, LABEL, EQU, PROC, INCLUDE, blocuri repetitive si macrouri (S6);  (seminar saptamanile S5/S6);

Instructiuni ale limbajului de asamblare: instructiuni de transfer, conversii, operatii aritmetice cu semn si fara semn, operatii de deplasare si rotire de biti, operatii logice pe biti (S7), instructiuni de salt conditionat si neconditionat, instructiuni de ciclare, instructiuni pe siruri (S8); (seminar saptamanile S7/S8);

Întreruperi: clasificare, instructiuni specifice lucrului cu întreruperi, formatele COM si EXE (S9) ; Redirectarea întreruperilor: programe TSR, instalarea si dezinstalarea programelor TSR, depanarea programelor TSR, redirectarea întreruperilor în cadrul SO Windos (S10); (seminar saptamanile S9/S10);

Implementarea apelului de subprograme si programare multimodul: cod de apel, cod de intrare, cod de iesire, directivele PUBLIC, EXTRN, GLOBAL, legarea de module TASM cu module scrise în limbaje de nivel înalt (S11);

Programare low-level în limbaje de nivel înalt: inserare de cod masina, asambloare inline, proceduri si functii assembler, accesarea registrilor si apelarea de întreruperi, proceduri si functii interrupt (S12); Tematicile 6 si 7 vor fi abordate în (seminar saptamanile S11/S12);

Extensii x86: modul de lucru protejat, extensii arhitecturale si noi instructiuni introduse la nivelul evolutiei familiei de procesoare 80x86 (S13);

Programarea în limbaj de asamblare sub Windows: apeluri sistem în modul de lucru protejat, limitari ale sistemului de întreruperi, asambloarele MASM si NASM, asamblorul inline Visual C++ (S14); Tematicile 8 si 9 vor fi abordate în (seminar saptamanile S13/S14);

             Tematica activitatilor didactice la LABORATOR:

Reprezentarea datelor: date elementare, reprezentari binare si ordini de plasare, organizarea si memorarea datelor (S1), codificarea caracterelor, reprezentarea cu semn si fara semn, cod complementar, conversii, conceptul de depasire (S2); (laborator saptamanile S1/S2);

Arhitectura sistemelor de calcul: organizarea unui SC, unitatea centrala, ceasul sistem, calculator pe n biti, memoria, dispozitivele periferice (S3), performantele unui SC, arhitectura microprocesorului 80x86 – structura, registri, calculul de adresa, moduri de adresare, adrese far si near (S4); ( laborator saptamanile S3/S4);

Elementele limbajului de asamblare: formatul unei linii sursa, expresii, tipuri de accesare a operanzilor, operatori (S5), directive pentru definirea segmentelor, pt.definirea datelor, LABEL, EQU, PROC, INCLUDE, blocuri repetitive si macrouri (S6);  ( laborator saptamanile S5/S6);

Instructiuni ale limbajului de asamblare: instructiuni de transfer, conversii, operatii aritmetice cu semn si fara semn, operatii de deplasare si rotire de biti, operatii logice pe biti (S7), instructiuni de salt conditionat si neconditionat, instructiuni de ciclare, instructiuni pe siruri (S8); (laborator saptamanile S7/S8);

Întreruperi: clasificare, instructiuni specifice lucrului cu întreruperi, formatele COM si EXE (S9) ; Redirectarea întreruperilor: programe TSR, instalarea si dezinstalarea programelor TSR, depanarea programelor TSR, redirectarea întreruperilor în cadrul SO Windos (S10); (laborator saptamanile S9/S10);

Implementarea apelului de subprograme si programare multimodul: cod de apel, cod de intrare, cod de iesire, directivele PUBLIC, EXTRN, GLOBAL, legarea de module TASM cu module scrise în limbaje de nivel înalt (S11);

Programare low-level în limbaje de nivel înalt: inserare de cod masina, asambloare inline, proceduri si functii assembler, accesarea registrilor si apelarea de întreruperi, proceduri si functii interrupt (S12); Tematicile 6 si 7 vor fi abordate în (laborator saptamanile S11/S12);

Extensii x86: modul de lucru protejat, extensii arhitecturale si noi instructiuni introduse la nivelul evolutiei familiei de procesoare 80x86 (S13);

Programarea în limbaj de asamblare sub Windows: apeluri sistem în modul de lucru protejat, limitari ale sistemului de întreruperi, asambloarele MASM si NASM, asamblorul inline Visual C++ (S14); Tematicile 8 si 9 vor fi abordate în (laborator saptamanile S13/S14);	

VII. Metode didactice folosite

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 scrisa – 60%;
- nota de la subiectul aplicativ de la examenul practic – 20%;
- nota pe activitatea de la laborator (corectitudinea si consistenta programelor, completitudinea documentarilor) – 20%;.
Cerinte pentru promovarea cursului se gasesc la 
http://www.cs.ubbcluj.ro/~vancea/ARHITECTURA_CALCULATOARELOR/Cerinte_promovare_AC.htm	

IX. Bibliografie suplimentară

	Decan,							Director departament,,

	Data,							Titular curs,
								Lect. Dr.  VANCEA Alexandru Ioan