Computer Architecture and Assembly Languages

Syllabus and Detailed Description


Topics Covered in the Course

  1. Introduction
    1. Block diagram of a generic computer
    2. Execution of a program
    3. Basic data representation: bits, bytes, words
  2. Basic CPU organization
    1. CPU block diagram
    2. Registers and accumulators
    3. ALU, FPU, and special functions
    4. Control and data paths, bus interface
    5. Instruction sequencing and execution speed issues
  3. Machine and assembly languages (generic)
    1. Instruction sets, operation types, and instruction formats
    2. Operands and addressing modes (memory, registers, stacks)
    3. Data transfer operations
    4. Data formats: binary, BCD, ASCII, two's complement
    5. Arithmetic and logical operations
    6. Bit-field and flag operations
    7. Program flow control operations (branch, subroutine call)
    8. Input-output operations
    9. Machine control operations and interrupts
    10. Pseudo-operations and the process of assembly and linking
    11. Monitors and debuggers: debugging assembly language programs
  4. Case study 1: 80X86
    1. Intel 80X86 series organization and architecture
    2. Intel 80X86 assembly language *
    3. Operating system interface: traps and interrupts *
    4. Access to IO devices: display, keyboard, real-time clocks, DMA *
  5. Special assembly language programming issues
    1. Parameter passing: assembly language and "external"
    2. Return addresses and co-routines
    3. Traps and interrupts: mechanism and handling
  6. Case study 2: a RISC architecture (MIPS)
    1. MIPS organization and architecture
    2. MIPS assembly language*
    3. The arithmetical and logical operations unit (ALU)
    4. The control unit and the datapath
    5. Processor bus interface
  7. (Introduction to) issues in modern architectures
    1. Advanced data formats: floating point standards
    2. Microprogramming
    3. RISC vs. CISC
    4. Associative memory and caches
    5. Address mapping (paging, segmentation, virtual memory)
    6. Pipelining
    7. Co-processor and multiprocessor systems
  8. Special miscellaneous topics
    1. Communications (serial and parallel), simple error detection and correction codes (parity, Hamming), handshakes.
    2. Macro processing: defining and using macros
Note: items marked with an asterisk (*) will be covered in exercise sessions.

Course Requirements

  1. Prerequisites: Digital Systems (361-13591) - prior or concurrent
  2. Credits: 5 (for 4 lecture hours, 2 exercise sessions)
  3. 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

  1. Advanced Microprocessors, Daniel Tabak, McGraw-Hill Inc., 1991.
  2. IBM PC Assembly Language Programming, Peter Abel, Prentice Hall (second edition 1991)
  3. D. A. Patterson and J. L. Hennessey, Computer Organization & Design: The Hardware Software Interface, Morgan Kauffman, second edition 1998.

Back to BGU CS HomePage