EEC70 - Computer Structure And Assembly Language

4 units - Fall and Winter Quarters

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

Textbook:
  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