Thursday
January 6 |
Introduction. Roadmap. |
|
|
-
Administrative structure of course
-
Grading policy
-
History of computers
-
The computer as a Universal computational device
-
Build simple circuit
|
|
Tuesday
January 11 |
Bits and arithmetic |
|
|
-
The bit as a unit of information
-
Encoding information: binary numbers, ASCII characters
-
Negative numbers, 2's complement representation, sign extension
-
Hex representation of binary numbers
-
Arithmetic operations: ADD, SUB
-
Logical operations: AND, OR, NOT
-
Arithmetic operations: MULT, DIV
-
Test operations: sign, equality, compare
-
Arithmetic in C
|
|
Thursday
January 13 |
Logic elements |
Homework #1 assigned |
|
-
The transistor as a switch
-
Basic gates (AND, OR, NOT)
-
Truth table representations
-
Any arbitrary function can be built from these gates
-
Half adder, full adder
-
MUX
-
Decoder
|
|
Tuesday
January 18 |
Storage and memory |
|
|
-
Basic storage element (gated RS latch)
-
A register
-
A logic circuit to implement a small piece of memory
-
Concept of memory: address space, addressability
-
Pointers and arrays in C - pointers are addresses
|
|
Thursday
January 20 |
Von Neumann model, instruction cycle,
Intro to LC-2 |
Homework #1 due.
Homework #2 assigned |
|
-
The basic structure of the Von Neumann model
-
Instruction = opcode, operands
-
Encoding of instructions and data
-
Instruction cycle (Fetch, Decode, EA, Fetch data, Execute, Store result)
-
GPRs, MAR and MDR
-
LC-2 ISA: instruction formats, operates, load/store, indirects
|
|
Tuesday
January 25 |
LC-2 continued |
Program #1 assigned |
|
-
LC-2 ISA: Control, condition codes
-
The datapath necessary to implement the LC-2
-
How I/O works at a very simple level (keyboard in, screen out)
-
The control structure of a stored program (sequential, conditional, iterative)
-
A detailed example in machine language, with i/o
|
|
Thursday
January 27 |
Moving up a level --
compiling, assembling, linking |
Homework #2 due.
Homework #3 assigned |
|
-
Going from higher to lower level: interpretation vs. translation
-
Translation: what do assembler and compiler do?
-
Hand assemble examples from lectures 5 and 6
-
Detailed example from lecture 6 in Assembler
|
|
Tuesday
February 1 |
Subroutines, parameters, and stacks |
Program #1 due.
Program #2 assigned |
|
-
Why subroutines?
-
How subroutines?
-
Transfer and return of control
-
Transfer and return of data
-
The stack in the abstract
-
Stack pointer and stack operations
-
Detailed examples of subroutine call and return
-
Traps
-
Interrupts and i/o service routines
|
|
Thursday
February 3 |
Pointers and addresses |
Homework #3 due.
Homework #4 assigned |
|
-
Pointers, arrays, and strings are addresses (reprise)
-
How do pointers and array uses compile?
-
Call by reference
-
Double and triple indirection
|
|
Tuesday
February 8 |
Linked structures, debugging |
|
|
-
Linked lists
-
Pointer problems in C
-
Debugging C programs that use pointers
|
|
Thursday
February 10 |
Review and catch-up |
Homework #4 due |
Tuesday
February 15 |
Final Exam |
|
Tuesday
February 17 |
|
Program #2 due |
|
|
|