Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Informatică
Programul de studii: Informatică - în limba engleză
Limba de predare: Engleză

SYLLABUS

I. General data
Code	Subject	
MIC0001	Computer Architecture	

Semester	Hours: C+S+L	Category	Status	
1	2+1+1	fundamental	compulsory	

II. Full status faculty members
Name and	Scientific	Didactic	Chair	Type of activity	
surname	title	title		C	S	L	
VANCEA Alexandru Ioan	Ph.D.	Lect.	Computer Systems	*			

Associated faculty members
Name and	Scientific	Institution	Type of	Type of activity	
surname	title		position	C	S	L	

III. Course objectives
- understading by the students of the computer architecture models, processor functioning, computer information representation usage
- initiation in assembler language programming, which will assure the comprehension of the microprocessor architecture and functioning
- understanding the basic functions of a computer’s  architectural components and its native low-level workflow. Awareness of the architectural impact on designing and implementing high level programming languages.    
- initiation in interrupt systems architecture, with the 80x86 case study
- envisioned skills: acquiring the abilities of a full control of a computing system’s resources and reaching the skills of optimizing the programs developed in high level programming languages	

IV. Course contents
Information representation inside computers. Computing systems architecture: central processing unit,  memory, peripheral devices, the structure of the 80x86 microprocessor and address computation.  Internal representation of a machine instruction. Instructions: transfer, arithmetic, bitwise, conversion, conditional and unconditional jumps, compare, on bytes and words strings.
      The usage of the 80x86 interrupts and their redirection. The structure of the interrupt system. Steps, stages and requirements of the multimodule programming when linking assembly language modules with high level programming languages modules. Introducing and analyzing low level features of high level programming languages implementations. Extensions and the evolution of the x86 family of processors. Basics of assembly language programming under Windows. 	

V. Bibliography
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. Thematic of didactic activities per weeks
The following schedule is given relative to the 14 weeks (W1-W14) of which the semester consists. 

1.	Data representation: elementary data, binary representation and placement orders, data organizing and storing (W1), character coding, signed and unsigned representation, complementary code, conversions, the concept of overflow (W2); (seminar and laboratory W1/W2);
2.	Computing systems (CS) architecture: organization of a CS, the central processing unit, the system clock, computer on n bits, the storage, peripheral devices (W3), CS performances, the 80x86 microprocessor’s architecture – structure, registers, address computation, addressing modes, far addresses and near addresses (W4); (seminar and laboratory W3/W4);
3.	Assembly language elements: the source line format, expressions, accessing the operands, operators (W5), directives for defining the segments, for defining data, LABEL, EQU, PROC, INCLUDE, repetitive blocks and macros (W6);  (seminar and laboratory W5/W6);
4.	Assembly language instructions: transfer instructions, conversions, signed and unsigned arithmetic operations, bitwise shifting and rotating, logical bitwise operations (W7), conditional and unconditional jump instructions, looping instructions, string instructions (W8); (seminar and laboratory W7/W8);
5.	Interrupts: classification, specific instructions working with interrupts, the COM and EXE formats (W9) ; Interrupts redirection: TSR programs, installing and deinstalling TSR programs, debugging a TSR program, interrupts redirection under Windows OS (W10); (seminar and laboratory W9/W10);
6.	Subprograms call implementation and multimodule programming: call code, entry code, exit code, the directives PUBLIC, EXTRN, GLOBAL, linking TASM modules with modules written in high-level programming languages (W11);

7.	Low-level programming in high level programming languages: inserting machine code, inline assemblers, assembler procedures and functions, accessing registers and calling interrupts, interrupt procedures and functions (W12); Topics 6 and 7 will be approached in (seminar and laboratory W11/W12);
8.	x86 extensions: protected mode, architectural extensions and new instructions  added during the evolution of the 80x86 family of processors (W13);
9.	Assembly programming under Windows: system calls in protected mode, restrictions imposed on the interrupt system, MASM and NASM assemblers,  the Visual C++ inline assembler (W14); topics 8 and 9 will be approached in (seminar and laboratory W13/W14);	

VII. Didactic methods used
Expositions: description, explanation, class lectures, dialog-based lectures, lectures with demonstrations, introductive lectures, current lectures, synthesis lectures. 
Conversations: debate, dialog, introductive conversations, conversations for knowledge consolidation, conversations to systematize and synthesize knowledge 
Use of problems: use of problem questions, problems and problem situations. 
Discovery: directed and independent rediscovery, creative discovery, inductive discovery, deductive discovery, discovery by documenting, experimental discovery. 
Other methods: case study; cooperation, simulation, brainstorming, individual study, exercise, homework study.	

VIII. Assessment
Written and practical exam, combined with the activity at the laboratories during the semester. The final mark is obtained as an average between:
- the grade at the written exam – 60%
- the grade at the practical exam – 20%
- a grade on the laboratory activity – 20%
The required details for passing this course can be found at http://www.cs.ubbcluj.ro/~vancea/ARHITECTURA_CALCULATOARELOR/Cerinte_promovare_AC.htm	

IX. Additional references
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	

	Dean,							Chair head,

	Date,							Course responsible,
								Lect. VANCEA Alexandru Ioan, Ph.D.