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.

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

Expanded Course Description

  1. Binary Representation

    Storing integers, real numbers, characters and machine instructions. 2's complement, floating-point storage, ASCII, concept of instruction op codes.

  2. Main Components of Computers

    CPU, 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 Modes

    Brief 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 Assemblers

    How 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 Linkers

    Review 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 Architectures

    Performance Analysis and Optimization of assembly programs; Introduction to ARM instruction set

  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).

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

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.

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.

Professional Component: Engineering Foundation
Engineering Science: 3 units
Engineering Design: 1 units