ECE Header Logo

EEC70 – Computer Structure And Assembly Language

4 units – Winter Quarter

Lecture: 3 hours

Workshop: 3 hours

Prerequisite: ECS 30

Grading: Letter.

Catalog Description:

Computer architecture; machine language; assembly language; macros and conditional macros; subroutine/parameter passing; input-output programming, interrupt and trap; direct-memory-access; absolute and relocatable code; re-entrant code; program development in an operating system.

Expanded Course Description:

  1. Binary RepresentationStoring integers, real numbers, characters and machine instructions. 2’s complement, floating-point storage, ASCII, concept of instruction op codes.
  2. Main Components of ComputersCPU, bus, memory, I/O devices. ALU, control unit, data and pointer registers, MAR, IAR, MDR. Memory structures, words, bytes, bits, addresses. Data bus, address bus, control bus, memory read/write operations. Brief description of MIPS. Fetch/execute cycle.
  3. Introduction to MIPS Instruction Set and Addressing ModesBrief introduction to RISC machine organization, architecture and machine language. Introduction to a few operations and addressing modes. An example program is used throughout, and modified by the students. Instruction formats, op codes.
  4. Loading and Executing Programs: Debuggers and AssemblersHow to use SPIM simulator to get a MIPS machine language program into memory and execute it. Assembly language for ease and clarity in programming at the machine level. DEBUG Trace and other commands.
  5. Modular Programming: Subroutines, Macros and LinkersReview of the advantages of modularity. Stack manipulation, and use in subroutine calls. Parameter passing. Interfacing assembly language subroutines to calling programs written in higher-level languages. Writing macros, speed/code size tradeoffs with subroutines.
  6. Optimizations and Other ArchitecturesPerformance Analysis and Optimization of assembly programs; Introduction to ARM instruction set

Example Laboratory Projects:

Write simple assembly language programs, practice using debugger, implement floating-point add operation in software; calculate round-off error in an example. Write a sort routine in assembly language, and interface it to a main program.

Computer Usage:

The class will require extensive use of computers in laboratory assignments.


  1. R. Britton, MIPS Assembly Language Programming, Prentice Hall.
  2. D. Patterson and J. Hennessey, Computer Organization and Design, Morgan Kaufmann (selected chapters and appendices).

Engineering Design Statement:

Students participate in homework projects which include open-ended design to meet specifications. Since there is no unique solution, some solutions are better than others, and students required to iteratively improve their solutions.

Relationship to Outcomes:

Students who have successfully completed this course should have achieved:

Course Outcomes ABET outcomes
An ability to apply knowledge of mathematics, science, and engineering A
An ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability C
An ability to identify, formulate, and solve engineering problems E
An ability to use the techniques, skills, and modern engineering tools necessary for engineering practice. K


Professional Component:

Engineering Foundation

Engineering Science: 3 credits
Engineering Design: 1 credit