Difference between revisions of "CSC231 Schedule 2010"

From dftwiki3
Jump to: navigation, search
(Weekly Schedule)
(Weekly Schedule)
Line 330: Line 330:
 
* Discussion: [http://en.wikipedia.org/wiki/Compiler_optimization compiler optimizations]
 
* Discussion: [http://en.wikipedia.org/wiki/Compiler_optimization compiler optimizations]
 
* [http://en.wikibooks.org/wiki/Microprocessor_Design/Pipelined_Processors Pipelines]
 
* [http://en.wikibooks.org/wiki/Microprocessor_Design/Pipelined_Processors Pipelines]
** <center>[[Image:CSC231_pipeline1.png|400px]]</center>
+
** <center>[[Image:CSC231_pipeline1.png|200px]]</center>
 
** <center>[[Image:CSC231_pipeline2.png|400px]]</center>
 
** <center>[[Image:CSC231_pipeline2.png|400px]]</center>
 
----
 
----

Revision as of 09:45, 3 December 2010

Back to Main Page | Class Wiki


Weekly Schedule

Week Topics Reading
Week 1
9/08
Wed 9/8
  • Introduction
  • Syllabus
  • The PC
    • What's inside?
    • The main players
  • First program in assembly
    • structure
    • presentation
    • documentation
Fri 9/10

Week 2
9/13
Monday 9/13
  • Mini Lab
  • Assembling with the -l option to generate a listing
     nasm -f elf -F stabs -l helloworld.S helloworld.asm

  • The memory contains numbers only
  • Boolean Algebra
  • Binary system
  • logic expressions
Wednesday 9/15
  • Digital Electronics Lab in FH143
Friday 9/17
  • Digital Electronics Lab in FH143

Week 3
9/20
Pentium.gif
MultiCore.jpg
Monday 9/20
  • Three-bit adder. Review
  • A word on Verilog and FPGAs Examples
  • Architecture of the Pentium (simplified)
Wednesday 9/22
Friday 9/24
  • Comments on lab reports
  • Once again: Everything in memory is a number!
  • Review the reverse engineering example
  • Exercises on Binary/Hexadecimal (do on your own!)
  • The mov instruction (covered here).
    • Introduction to the 32-bit registers: EAX, EBX, ECX, EDX
    • Introduction to the 16-bit registers: AX, BX, CX, DX
    • Introduction to the 8-bit registers: AL, AH, BL, BH, CL, CH, DL, DH

Week 4
9/27
FibonacciPigeons.jpg
Monday 9/27
Wednesday 9/29
  • MOUNTAIN DAY!
Friday 10/1
  • Arithmetic instructions: ADD, SUB, INC, DEC
  • Logic instructions: AND, OR, NOT, XOR
  • using DDD to debug programs
  • Lab 4, Part 1

Week 5
10/04
Monday 10/4
Wednesday 10/6
  • Representing negative numbers, Signed Magnitude, 1's complement, 2's complement.
  • Exercises
Friday 10/8

Week 6
10/11
Monday
Fall Break
Wednesday 10/13
  • Review 2's complement
  • An example illlustrating what compiler code looks like.
  • Logic Design: Building a "subtractor" with an adder, using only AND, OR, NOT and XOR gates.
  • Mul/Div
  • Exercise: Teller Machine
Friday 10/15
  • Addressing Modes
  • Question of the day: What is an instruction set? Is there a best way to define an instruction set?
  • Pentium Instruction Set
  • Cool videos for a rainy afternoon
  • The main addressing modes:
    • inherent
    • register
    • immediate
    • direct
    • indirect/based/indexed
    • indirect with displacement
    • base-indexed
    • base-indexed with displacement
  • Exercises on Addressing Modes
  • Ascii Table

  • No homework assignment this week. Prepare for midterm!
  • The signed and unsigned representations of numbers are covered in Sections 1.7 and 1.8 of The Art of Assembly, and in Chapter 2 of Carter's PC Assembly Language.
  • Addressing modes are covered in Chapter 4 of The Art of Assembly. We won't cover "Displacement Only Addressing" modes (Section 4.6.2.1). Mentally replace 16-bit registers by 32-bit registers when reading this section.
Week 7
10/18
Monday 10/18
In class Midterm Exam
Sample Questions to get ready...
Wednesday 10/20
Friday 10/22
  • Lab 5
  • Loops and Addressing Modes


Week 8
10/25

Monday 10/25
  • The shift instructions: SHR, SHL, logical and arithmetic variants.
  • Sound waves, a bit of physics
  • The format of wav sound files
  • A demo program: readWaveFile.asm
Wednesday 10/27
  • Using a Makefile for Lab 5
  • Challenge of the day: clip 8-bit samples by forcing overflow to 0xff...
  • Examples with wav files:
  • Lab 6
Friday 10/29
  • Continue with Lab 6

Week 9
11/01
Monday 11/01
  • Functions
    • Using the stack
    • Passing parameters
      • by value
      • by reference
      • functions returning values
  • Exercises on Functions
Wednesday 11/03
  • Review of functions: passing parameters through registers
    • push/pop
    • organization (example program: maze.asm)
    • examples involving copying buffers
Friday 11/05
  • Passing parameters through the stack
  • Lab 7

Week 10
11/08
Monday 11/08
Wednesday 11/10
Friday 11/12

  • the preprocessor directive %define is fully explained here.
  • The PUSHAD instruction
Week 11
11/15
Monday 11/15
Wednesday 11/17
Friday 11/19

  • No homework assignment this week!
Week 12
11/22
Monday
  • Continuation of Coverage of Recursion
  • Video: History of Computers
TurkeyCarcass.jpg
Wednesday
Thanksgiving Break
Friday
Thanksgiving Break


Week 13
11/29
Monday 11/29
Wednesday 12/1
Friday 12/3

Week 14
12/06


Week 15
12/13
  • Monday: Last Class



List of Selected Programs

Assembly

Miscellaneous Information

Linux Related