EEC70 - Computer Structure And Assembly Language
4 units - Fall and Winter Quarters
Lecture: 3 hours
Workshop: 3 hours
Prerequisite: ECS 30
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
- Binary Representation
Storing integers, real numbers, characters and machine instructions. 2's complement, floating-point storage, ASCII, concept of instruction op codes.
- 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.
- 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.
- 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.
- 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.
- Optimizations and Other Architectures
Performance Analysis and Optimization of assembly programs; Introduction to ARM instruction set
- R. Britton, MIPS Assembly Language Programming, Prentice Hall.
- 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.
Engineering Science: 3 units
Engineering Design: 1 units