Difference between revisions of "CSC231 Schedule 2010"

From dftwiki3
Jump to: navigation, search
(Weekly Schedule)
Line 155: Line 155:
 
----
 
----
 
*
 
*
||
 
=Weekly Schedule=
 
 
{| style="width:100%" border="1"
 
|- style="background:#ffdead;"
 
|'''Week''' || '''Topics''' || '''Reading'''
 
|-valign="top"
 
 
|width="15%"| Week 1 <br /> 9/05
 
|width="60%"|
 
* [[CSC231_First_Program | first program]]
 
* assembling programs
 
* first look at Pentium processor. [http://www.intel.com/pressroom/archive/photos/p4_photos.htm?iid=ipp_850echpst+relate_pr& Photos].
 
* Outputing text in assembly
 
* memory map of a program
 
* [[CSC231_skeleton_program | skeleton program]]
 
* [[media:CSC231_Bare_and_Skeleton_version.pdf | Bare versus Skeleton versions]]
 
* A [[CSC231_Hello_World_on_Mac | hello-world program]] for the Mac OSX. More info on Mac OS X system calls can be found [http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/x86-system-calls.html here ][[CSC231 Final Exam 12/08|.]]
 
 
----
 
 
* '''Mini lab''': [[CSC231_Lab_1 | Lab #1 ]]
 
|| Chapter 1 in the [http://cs.smith.edu/~thiebaut/ArtOfAssembly/artofasm.html Art of Assembly].
 
Also Chapter 3, Sections 0 to 3.1.2.
 
Sections 1.3.1, 1.3.2, 1.3.3, 1.3.4, and 1.3.5 in Carter's [http://cs.smith.edu/~thiebaut/classes/231_0405/doc/pcasm-book.pdf PC Assembly Language].
 
 
|- style="background:#eeeeff" valign="top"
 
| Week 2 <br /> 9/08
 
||
 
* First introduction to the Pentium processor.  Registers, ALU, Control Unit, Busses, Memory
 
* [[CSC231_Exercises_Binary_Hexadecimal | Exercises]] on binary, decimal, hexadecimal system
 
* [http://www.willamette.edu/~gorr/classes/cs130/lectures/BinaryConversion/convert.html Bin/Dec/Hex converter]
 
* [[CSC231_listing_file | Listing file]] with assembly and opcodes
 
* [[media:CSC231_StepByStepInstruction.pdf | Step by Step]] execution of instructions
 
* [[CSC231_ReverseEngineering.lst | Exercise]] on reverse engineering.  [[CSC231_ReverseEngineeringSol.asm | Solution]]
 
* The '''mov''' instruction.  Syntax.  Operands
 
* Units of storage: nybble, byte, word, double-word
 
* The '''add''' instruction.
 
* Using the '''ddd''' debugger
 
 
----
 
 
* [[CSC231_Homework_1 | Homework #1]] and [[CSC231_Homework_1_Solution | Solution ]]
 
* [[CSC231_Lab_2 | Lab #2]]
 
||
 
*[http://maven.smith.edu/~thiebaut/ArtOfAssembly/CH03/CH03-1.html Basic computer organization], Sections 3.0, 3.1, 3.3.1
 
*[http://webster.cs.ucr.edu/AoA/Linux/HTML/DataRepresentation.html#998846  Review of data representation]
 
*[http://webster.cs.ucr.edu/AoA/Linux/HTML/DataRepresentation2.html#998917 Bits, nybbles, bytes]
 
*[http://webster.cs.ucr.edu/AoA/Linux/HTML/DataRepresentation3.html#1012324 The hex system]
 
 
|- valign="top"
 
| Week 3 <br /> 9/15
 
||
 
* Review of last lab
 
** [[CSC231_Add5.asm | add5.asm]]
 
** [[CSC231_ComputeFib7.asm | computeFib7.asm]]
 
* new instructions
 
** add, sub, inc, dec, loop
 
** [[CSC231_Loop_Exercises | Exercises]]
 
* Binary adders, [http://en.wikipedia.org/wiki/Boolean_algebra_(introduction) Boolean Algebra], and the ALU
 
* Signed and unsigned numbers
 
----
 
 
* [[CSC231_Homework_2 | Homework #2]] and its [[CSC231_Homework_2_Solution | Solution]]
 
* [[CSC231_Lab_3 | Lab #3]]
 
||
 
Signed and unsigned numbers are covered in
 
[http://maven.smith.edu/~thiebaut/ArtOfAssembly/CH01/CH01-2.html#HEADING2-96 Sections 1.7 and 1.8] and
 
[http://maven.smith.edu/~thiebaut/classes/231_0607/doc/pcasm-book.pdf Chap. 2]
 
[http://en.wikipedia.org/wiki/Boolean_algebra_(introduction) Boolean Algebra]
 
 
|- style="background:#eeeeff" valign="top"
 
| Week 4 <br /> 9/22
 
||
 
* A [[CSC231_OverFlow_C_Program | C program]] that overflows
 
* A [[CSC231_OverFlow_Python_Program | Python program]] that overflows (or does it?)
 
* How do we represent signed numbers?
 
* What formats are available?
 
** Signed magnitude
 
** 1's complement
 
** 2's complement
 
* Why the binary adder dictates what we choose
 
* [[CSC231_Mystery_C_Program_with_signed_numbers | Mystery C Program]]
 
*[http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html Hex/Bin/Decimal converter]
 
*  <font color="purple">'''Project starts!'''</font> (on Friday)
 
----
 
* [[CSC231_Homework_3 | Homework #3]] and its [[CSC231_Homework_3_Solution | Solution]]
 
* [[CSC231_Lab_4 | Lab #4]]
 
 
||  
 
||  
 
*The signed and unsigned representations of numbers are covered in [http://maven.smith.edu/~thiebaut/ArtOfAssembly/CH01/CH01-2.html#HEADING2-96 Sections 1.7 and 1.8] of The Art of Assembly, and in [http://maven.smith.edu/~thiebaut/classes/231_0607/doc/pcasm-book.pdf Chapter 2] of Carter's PC Assembly Language.
 
*The signed and unsigned representations of numbers are covered in [http://maven.smith.edu/~thiebaut/ArtOfAssembly/CH01/CH01-2.html#HEADING2-96 Sections 1.7 and 1.8] of The Art of Assembly, and in [http://maven.smith.edu/~thiebaut/classes/231_0607/doc/pcasm-book.pdf Chapter 2] of Carter's PC Assembly Language.

Revision as of 08:47, 13 October 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

  • Signed and unsigned numbers are covered in

Sections 1.7 and 1.8 and Chap. 2

Week 6
10/11
Monday
Fall Break
Wednesday 10/13
  • Review 2's complement
  • Logic Design: Building a "subtractor" with an adder, using only AND, OR, NOT and XOR gates.
  • Mul/Div
  • Exercise: Teller Machine
  • Addressing Modes

  • 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: In class Midterm Exam

Week 8
10/25

Week 9
11/01

Week 10
11/08


Week 11
11/15

Week 12
11/22
  • Wednesday: Thanksgiving Break
  • Friday: Thanksgiving Break


Week 13
11/29
Week 14
12/06


Week 15
12/13
  • Monday: Last Class



List of Programs

Assembly

Miscellaneous Information

Linux Related