Computer Architecture and Assembly Languages

Semester A 2001-2002 (Fall 2001)


BGU Computer Science Department

Description of the course

It is extremely important for a student of computing to understand some of the machine-dependent aspects of computers, and how they might impinge on embedded software, and on systems software. This course covers the ground from a subsystem-level description of computers (also known as "computer organization"), through programmer-visible aspects of the machines ("computer architecture"), to assembly language principles and programming techniques. As such, the course is a bridge between the hardware course on our curriculum, Digital Systems, and the pure programming courses, such as Systems Programming and Operating Systems.

As one of the goals of the course is to enable the student to quickly learn to use any newly encountered architecture, we focus mostly on principles, rather than on a particular machine. Nevertheless, as case studies (and in order to provide hands-on experience), the course will present one CISC machine (Intel series 80X86), and one RISC machine (MIPS). Machine-specific assembly languages and hands-on programming will be the main topic of the exercise sessions.

At and after the turn of the millenium, special performance enhancments, once the province of mainframe or supercomuters, have become commonplace, even in cheap personal computers. Thus, the course also focuses on caches and pipelining, and how they affect programmer-visible aspects of the machine.

Administrative Details and Online Material

  1. Course Reference: (201-12021) - Semester A 2001-2002 (Fall 2001).
  2. Credits: 5 (for 4 lecture hours, 2 exercise sessions)
  3. Instructor: Dr. Eyal Shimony.
  4. Teaching assistant: Mr. Lior Malka (e-mail:
  5. Syllabus and detailed description
  6. Online course material.
  7. Online web pages for exercise sessions, assignments, can be accessed here.

Back to BGU - CS HomePage