Difference between revisions of "CSC231 Schedule 2012"
(→Weekly Schedule) |
|||
(23 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
=Misc. Links & Information= | =Misc. Links & Information= | ||
− | * <font color="red">'''NEW'''</font>: [[CSC231 List of All Class Demo Files 2012| All the class demo files, as of | + | * <font color="red">'''NEW'''</font>: [[CSC231 List of All Class Demo Files 2012| All the class demo files, as of 12/12/12]] |
* [[CSC231 nasmld script | nasmld script]] | * [[CSC231 nasmld script | nasmld script]] | ||
* [[CSC231 Things to Remember when Writing Assembly Programs | Things to remember while programming in assembly]] | * [[CSC231 Things to Remember when Writing Assembly Programs | Things to remember while programming in assembly]] | ||
Line 168: | Line 168: | ||
|| | || | ||
* Reading | * Reading | ||
− | **[http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH01/CH01-2.html#HEADING2-86 Logical Operations on Bits], and [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH01/CH01-2.html#HEADING2-96 Signed and Unsigned Numbers] in the ''Art of Assembly'' reference. | + | :* Section 3.2 on Bit operations (AND, OR, NOT, XOR) in [http://cs.smith.edu/~thiebaut/classes/231_0405/doc/pcasm-book.pdf Carter's eBook]. Look at the section that follows on bit manipulation in C. The same operations are also [https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html supported in Java]. |
+ | :*[http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH01/CH01-2.html#HEADING2-86 Logical Operations on Bits], and [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH01/CH01-2.html#HEADING2-96 Signed and Unsigned Numbers] in the ''Art of Assembly'' reference. | ||
** [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH06/CH06-1.html#HEADING1-236 The CBW & CWDE instructions] in the ''Art of Assembly'' reference. | ** [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH06/CH06-1.html#HEADING1-236 The CBW & CWDE instructions] in the ''Art of Assembly'' reference. | ||
<!-- ================================================================== --> | <!-- ================================================================== --> | ||
Line 329: | Line 330: | ||
** Recursion | ** Recursion | ||
---- | ---- | ||
− | * [[CSC231 Homework 10 2012| Homework 10]] | + | * [[CSC231 Homework 10 2012| Homework 10]] and [[CSC231 Homework 10 Solutions 2012 | solution programs]] |
|| | || | ||
* Reading | * Reading | ||
Line 363: | Line 364: | ||
* '''Wednesday''' | * '''Wednesday''' | ||
** Q&A | ** Q&A | ||
− | ** Continuation with the Towers of Hanoi | + | ** Continuation with the [[CSC231 Towers of Hanoi | Towers of Hanoi]] |
*** Observe [[CSC231_Towers_of_Hanoi#Enhanced_Version | hanoi2.py]] and its indented output | *** Observe [[CSC231_Towers_of_Hanoi#Enhanced_Version | hanoi2.py]] and its indented output | ||
*** Question 1: how much stack space is used when moving ''N'' disks? | *** Question 1: how much stack space is used when moving ''N'' disks? | ||
Line 378: | Line 379: | ||
* '''Friday''': <font color="magenta">No Class</font> | * '''Friday''': <font color="magenta">No Class</font> | ||
---- | ---- | ||
− | * | + | * [[CSC231 Homework 11 2012| Homework 11]] and [[CSC231 Homework 11 Solutions 2012| Solutions]] |
|| | || | ||
* Reading | * Reading | ||
Line 389: | Line 390: | ||
|| | || | ||
* '''Monday''' | * '''Monday''' | ||
+ | ** Reminder: '''lunch talk''' by Pippin Wolfe on her research in AI | ||
+ | ** A word about making the Fibonacci program of [[CSC231 Homework 10 2012| Homework 10]] faster | ||
+ | ** [[CSC231 An Introduction to Floating-Point Numbers | Floating Point Numbers]] | ||
* '''Wednesday''' | * '''Wednesday''' | ||
+ | ** [[CSC231 An Introduction to Floating-Point Numbers | Continuing with Floating Point Numbers]] | ||
+ | *** How to declare a ''U''(8, 8) fixed point number? | ||
+ | *** [[CSC231_An_Introduction_to_Floating-Point_Numbers#Exercises_with_the_Unsigned_Fixed-Point_Format | Exercises with Fixed-Point Notation]] | ||
+ | *** Adding and multiplying Fixed Points | ||
+ | *** [[CSC231_An_Introduction_to_Floating-Point_Numbers#Definitions | Some important definitions]] | ||
+ | *** [[CSC231_An_Introduction_to_Floating-Point_Numbers#Floating-Point_Numbers | Floating-Point Numbers]] | ||
* '''Friday''': <font color="magenta">No Class</font> | * '''Friday''': <font color="magenta">No Class</font> | ||
---- | ---- | ||
− | * | + | * [[CSC231 Homework 12 2012| Homework 12]] and [[CSC231 Homework 12 Solutions 2012| solutions]] |
|| | || | ||
* Reading | * Reading | ||
− | + | ** [[CSC231 An Introduction to Floating-Point Numbers | DT's page on Floating Point]] | |
+ | ** [http://en.wikipedia.org/wiki/Ieee_floating_point Wikipedia's page] on the IEEE floating-point format. | ||
<!-- ================================================================== --> | <!-- ================================================================== --> | ||
|- style="background:#eeeeff" valign="top" | |- style="background:#eeeeff" valign="top" | ||
Line 401: | Line 412: | ||
|| | || | ||
* '''Monday''' | * '''Monday''' | ||
+ | ** [[CSC231_An_Introduction_to_Floating-Point_Numbers#Floating-Point_Numbers | More on Floating-Point Numbers]] | ||
+ | |||
* '''Wednesday''' <font color="magenta">'''Last Class'''</font> | * '''Wednesday''' <font color="magenta">'''Last Class'''</font> | ||
− | ** | + | [[File:FloatingPointRangeByte.png|150px|right]] |
+ | ** Answer to the question: What does the ''real'' ligne looks like in terms of how the Floating Point format covers it? | ||
+ | ** [[CSC231 Unexpected Floating-Point Results | Examples of Floating Point programs that generate unexpected results]] | ||
+ | ** The architecture of the FPU: A stack of 8 80-bit registers: st0, st1, ... st7. | ||
+ | ** [[CSC231_An_Introduction_to_Fixed-_and_Floating-Point_Numbers#Programming_with_Floating-Point_Numbers_in_Assembly| Examples of assembly programs using the FPU]] (also available [[CSC231 Floating-Point Assembly Examples| here]]) | ||
+ | ** How the FPU performs an addition of two floating point numbers | ||
---- | ---- | ||
− | * | + | * Take-Home <font color="orange">'''[[CSC231 Final Exam 2012|Final Exam]]''', open books & computers</font>. [[CSC231 Final Exam Solutoins 2012 | Solution]] |
|| | || | ||
* Reading | * Reading | ||
+ | ** [[CSC231 An Introduction to Floating-Point Numbers | DT's page on Floating Point]] | ||
+ | ** [http://en.wikipedia.org/wiki/Ieee_floating_point Wikipedia's page] on the IEEE floating-point format. | ||
+ | ** [http://www.lahey.com/float.htm Very good coverage of the unexpected behavior of floating point numbers] | ||
+ | ** [http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html What every computer scientist should know about FP] | ||
|} | |} | ||
Latest revision as of 11:19, 28 October 2015
--D. Thiebaut 11:15, 24 August 2012 (EDT)
Misc. Links & Information
- NEW: All the class demo files, as of 12/12/12
- nasmld script
- Things to remember while programming in assembly
- The NASM Manual (http://alien.dowling.edu/~rohit/nasmdoc0.html)
- Paul Carter's assembly language tutorial. Paul Carter's page can be found at http://www.drpaulcarter.com/.
- The Art of Assembly Language. It assumes a different assembler, and hence a different syntax, but has a lot of very good information.
- The Pentium Instruction Set on Wikipedia.
- Programming the Arduino in assembly.
Weekly Schedule
Week | Topics | Reading |
Week 1 9/7 |
|
|
Week 2 9/10 |
|
|
Week 3 9/17 |
|
|
Week 4 9/24 |
int a = 3, b = 5, result = 0; result = a + b;
|
|
Week 5 10/1 |
|
|
Week 6 10/8 |
|
|
Week 7 10/15 |
|
|
Week 8 10/22 |
nasm -f elf -F stabs myProg.asm ; ld -melf_i386 -o myProg myProg.o ; ./myProg
shl reg, 1 shl mem, 1 shl reg, imm shl mem, imm shl reg, cl shl mem, cl
|
|
Week 9 10/29 |
|
|
Week 10 11/05 |
int main() { int a=3, b=5, res; res = sum( a, b ); ... } int sum( int x, int y ) { return x+y; }
|
|
Week 11 11/12 |
|
|
Week 12 11/19 |
|
|
Week 13 11/26 |
|
|
Week 14 12/03 |
|
|
Week 15 12/10 |
|
|
References
- ↑ 1.0 1.1 Intel Instruction Set Summary, from http://download.intel.com/design/processor/manuals/253666.pdf