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.

Textbook/reading:

  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