Computer Architecture and Assembly Languages
Syllabus and Detailed Description
Topics Covered in the Course
-
Introduction
-
Block diagram of a generic computer
-
Execution of a program
-
Basic data representation: bits, bytes, words
-
Basic CPU organization
-
CPU block diagram
-
Registers and accumulators
-
ALU, FPU, and special functions
-
Control and data paths, bus interface
-
Instruction sequencing and execution speed issues
-
Machine and assembly languages (generic)
-
Instruction sets, operation types, and instruction formats
-
Operands and addressing modes (memory, registers, stacks)
-
Data transfer operations
-
Data formats: binary, BCD, ASCII, two's complement
-
Arithmetic and logical operations
-
Bit-field and flag operations
-
Program flow control operations (branch, subroutine call)
-
Input-output operations
-
Machine control operations and interrupts
-
Pseudo-operations and the process of assembly and linking
-
Monitors and debuggers: debugging assembly language programs
-
Case study 1: 80X86
-
Intel 80X86 series organization and architecture
-
Intel 80X86 assembly language *
-
Operating system interface: traps and interrupts *
-
Access to IO devices: display, keyboard, real-time clocks, DMA *
-
Special assembly language programming issues
-
Parameter passing: assembly language and "external"
-
Return addresses and co-routines
-
Traps and interrupts: mechanism and handling
-
Case study 2: a RISC architecture (MIPS)
-
MIPS organization and architecture
-
MIPS assembly language*
-
The arithmetical and logical operations unit (ALU)
-
The control unit and the datapath
-
Processor bus interface
-
(Introduction to) issues in modern architectures
-
Advanced data formats: floating point standards
-
Microprogramming
-
RISC vs. CISC
-
Associative memory and caches
-
Address mapping (paging, segmentation, virtual memory)
-
Pipelining
-
Co-processor and multiprocessor systems
-
Special miscellaneous topics
-
Communications (serial and parallel), simple error detection and correction
codes (parity, Hamming), handshakes.
-
Macro processing: defining and using macros
Note: items marked with an asterisk (*) will be covered in exercise sessions.
Course Requirements
-
Prerequisites: Digital Systems (361-13591) - prior or concurrent
-
Credits: 5 (for 4 lecture hours, 2 exercise sessions)
-
Grading (approximate): 10% mid-term exam,
60% final exam, 30% homework assignments. Note:
A passing grade in the final exam is
required to pass the course. Additionally,
a non-0 grade in all homework assignments mandatory in order to get
a grade in the course. Cheating on a homework assignment earns
a grade of 0 on the assignment.
Sourcebooks and Written Material
-
Advanced Microprocessors, Daniel Tabak, McGraw-Hill Inc., 1991.
-
IBM PC Assembly Language Programming, Peter Abel, Prentice Hall (second
edition 1991)
- D. A. Patterson and J. L. Hennessey, Computer Organization & Design:
The Hardware Software Interface, Morgan Kauffman, second edition 1998.
Back to BGU CS HomePage