Difference between revisions of "CSC231 Schedule Fall 2017"

From dftwiki3
Jump to: navigation, search
( )
 
(102 intermediate revisions by the same user not shown)
Line 354: Line 354:
 
|
 
|
 
* '''Monday'''
 
* '''Monday'''
::* Back to the LOOP
+
::* Back to the LOOP instruction
 
::* Indirect addressing & addressing modes
 
::* Indirect addressing & addressing modes
 +
* '''Wednesday'''
 +
::* Addressing modes
 
::*  [[Media:CSC231_slides_week9_F17.pdf| Slides]]
 
::*  [[Media:CSC231_slides_week9_F17.pdf| Slides]]
* '''Wednesday'''
 
 
* '''Friday'''
 
* '''Friday'''
 +
::* [[CSC231_Bash_Tutorial_8 | Bash lab #8 + video introduction]]: Bash functions
  
 
|
 
|
* [[CSC231 Homework 5 Fall 2017| Homework #5]], due 11/4/2017 at 11:55 p.m.
+
* [[CSC231 Homework 5 Fall 2017| Homework #5]], due 11/6/2017 at 11:55 p.m.
 +
* [[CSC231_Homework_5_Fall_2017#Solutions | Solution programs for Homework #5]]
 
|
 
|
 
* [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH06/CH06-5.html#HEADING5-294 The Loop Instruction (Section 6.9.6)]
 
* [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH06/CH06-5.html#HEADING5-294 The Loop Instruction (Section 6.9.6)]
Line 389: Line 392:
 
|-valign="top"
 
|-valign="top"
 
|
 
|
 +
[[Image:serpinski.png|right|200px]]
 
* '''Monday'''
 
* '''Monday'''
 +
::* Introduction to the Game of Life
 
* '''Wednesday'''
 
* '''Wednesday'''
 +
::* Continue with game of life
 +
::* Flags register
 +
::* Jumps and Conditional Jumps
 +
::* [[Media:CSC231_slides_week10_F17.pdf | Slides]]
 
* '''Friday'''
 
* '''Friday'''
 +
::* [[Media:CSC231_C_Tutorial_2017.pdf | C Tutorial #1]]
  
 
|
 
|
 
+
* [[CSC231 Homework 6 Fall 2017| Homework #6]], due Monday Nov 13 at 11:55 p.m. <br />[[CSC231_Homework_6_Fall_2017#Solution_Assembly_Program| Solution assembly program]].
 
|
 
|
*
+
* [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH06/CH06-5.html#HEADING5-3 Unconditional Jump]
 +
* [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH06/CH06-1.html#HEADING1-27 The Flags Register]
 +
* [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH06/CH06-5.html#HEADING5-226 Conditional Jumps]
 +
* [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH06/CH06-2.html#HEADING2-244 CMP instruction]
 +
 
 
|}
 
|}
 
<br />
 
<br />
Line 415: Line 429:
 
{| class="mw-collapsible " style="width:100%" border="1"
 
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''':  
+
|width="60%"| '''Topics''': Functions
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
Line 421: Line 435:
 
|
 
|
 
* '''Monday'''
 
* '''Monday'''
 +
::* Continue with conditional jumps
 +
::* The Stack segment
 +
::* Push & Pop instructions
 
* '''Wednesday'''
 
* '''Wednesday'''
 +
::* Functions
 +
::* [[CSC231 Code Snippets | Examples]] of assembly code.
 +
::* [[Media:CSC231_slides_week11_F17.pdf | Slides]]
 
* '''Friday'''
 
* '''Friday'''
 +
::* [[Media:CSC231_C_Tutorial_2017.pdf  | C Tutorial #2]]
  
 
|
 
|
&nbsp;
+
* [[CSC231_Homework_7_Fall_2017 | Homework #7]], due <strike>11/20/17</strike> 11/27/17 at 11:55 p.m.
 +
<br />
 +
[[CSC231_Homework_7_Fall_2017#Solutions | Solution programs]]
 
|
 
|
*
+
* [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH11/CH11-1.html#HEADING1-0 Functions].  Functions are also called ''procedures'' when dealing with assembly.  You'll find this term used in Randy Hyde's documentation.  Also, Hydes uses the '''proc''' and '''endp''' directives to define functions, which is fine.  We won't in this class.  Functions work just as well without!
 +
 
 
|}
 
|}
 
<br />
 
<br />
Line 452: Line 476:
 
|
 
|
 
* '''Monday'''
 
* '''Monday'''
* '''Wednesday'''
+
::* We continue with functions and passing parameters via the '''stack'''
* '''Friday'''
+
::* [[Media:CSC231_slides_week12_F17.pdf | Slides]]
 +
 
 +
<br />
 +
[[Image:TurkeyThanksgiving.jpg|right|150px]]
 +
* '''Wednesday/Friday''' <font color="magenta">THANKSGIVING BREAK</font>
  
 
|
 
|
&nbsp;
+
<font color="magenta">'''No homework assignment this week...''' </font>
 
|
 
|
*
+
*  
 
|}
 
|}
 
<br />
 
<br />
Line 477: Line 505:
 
{| class="mw-collapsible " style="width:100%" border="1"
 
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''':  
+
|width="60%"| '''Topics''': Recursion
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
Line 483: Line 511:
 
|
 
|
 
* '''Monday'''
 
* '''Monday'''
<br />
+
[[Image:VideoLogo.png|50px| right | link=https://www.youtube.com/watch?v=Wfrj30cJJ-0]]
* '''Wednesday/Friday''' <font color="magenta">THANKSGIVING BREAK</font>
+
::* Studying a recursive Factorial function: Python, Java, Assembly, stack frame, stack overflow.
 +
* '''Wednesday
 +
::* Exploring various issues related to recursion
 +
::* [[Media:CSC231_slides_week13_F17.pdf | Slides]]
 +
* '''Friday'''
 +
::* [[Media:CSC231_C_Tutorial_2017.pdf  | C Tutorial #3]]
  
 
|
 
|
&nbsp;
+
* [[CSC231 Homework 8 Fall 2017| Homework #8]], due 12/4/17 @ 11:55 p.m.
 +
<br />[[CSC231_Homework_8_Fall_2017#Solution_Program| Solution programs and answers for Homework #8]]
 
|
 
|
*
+
*   [http://cs.smith.edu/~dthiebaut/ArtOfAssembly/CH11/CH11-7.html#HEADING7-86 Recursion chapter] in Randy Hall's Art of Assembly.  Hall uses 16-bit registers (ax, bx, bp, etc...) but the reasoning is the same as for 32-bit registers.
 +
 
 
|}
 
|}
 
<br />
 
<br />
Line 495: Line 530:
 
                                                           WEEK 14   
 
                                                           WEEK 14   
 
       ================================================== -->
 
       ================================================== -->
<br />
+
<br />
  
 
====&nbsp;====
 
====&nbsp;====
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 14'''  Nov. 27
+
|width="45%"|'''Week 14'''  Dec. 4
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 508: Line 543:
 
{| class="mw-collapsible " style="width:100%" border="1"
 
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|- style="background:#dddddd;"
|width="60%"| '''Topics''':  
+
|width="60%"| '''Topics''': Fixed and Floating-Point Numbers
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
Line 514: Line 549:
 
|
 
|
 
* '''Monday'''
 
* '''Monday'''
 +
::* Fixed-Point Numbers, ''U''(a,b), and ''A''(a, b)
 
* '''Wednesday'''
 
* '''Wednesday'''
 +
::* The Floating-point format
 +
::* [[Media:CSC231_slides_week14_F17.pdf | Slides]]
 
* '''Friday'''
 
* '''Friday'''
 +
::* [[Media:CSC231_C_Tutorial_2017.pdf | C Tutorial #4]]
  
 
|
 
|
&nbsp;
+
* [[CSC231_Homework_9_Fall_2017 |Homework 9]] is  a make-up homework that can be used to replace the grade of Homework 1 to Homework 8.
 +
<br />
 +
* [[CSC231_Homework_9_Fall_2017#Solution_Programs | Solution programs]] for Homework 9.
 
|
 
|
*
+
* [http://www.science.smith.edu/dftwiki/index.php/CSC231_An_Introduction_to_Fixed-_and_Floating-Point_Numbers Fixed and Floating-point number formats]
 
|}
 
|}
 
<br />
 
<br />
Line 531: Line 572:
 
----
 
----
 
{| style="width:100%" border="0"
 
{| style="width:100%" border="0"
|width="45%"|'''Week 15'''  Dec. 4
+
|width="45%"|'''Week 15'''  Dec. 11
 
|width="20%"| '''&nbsp;'''  
 
|width="20%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
 
|width="25%"| '''&nbsp;'''  
Line 544: Line 585:
 
|-valign="top"
 
|-valign="top"
 
|
 
|
* '''Monday'''
+
* '''Monday, Wednesday'''
* '''Wednesday'''
+
::* Floating Point operations
* '''Friday'''
+
::* [[Media:CSC231_slides_week15_F17.pdf | Slides]]
 
 
|
 
&nbsp;
 
|
 
*
 
|}
 
<br />
 
<!-- ==================================================
 
                                                          WEEK 16 
 
      ================================================== -->
 
<br />
 
 
 
====&nbsp;====
 
----
 
{| style="width:100%" border="0"
 
|width="45%"|'''Week 16'''  Dec. 11
 
|width="20%"| '''&nbsp;'''
 
|width="25%"| '''&nbsp;'''
 
|-
 
|}
 
 
<br />
 
<br />
{| class="mw-collapsible " style="width:100%" border="1"
 
|- style="background:#dddddd;"
 
|width="60%"| '''Topics''':
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''
 
|-valign="top"
 
|
 
* '''Monday'''
 
* '''Wednesday''' <font color="magenta">Last Class</font>
 
 
 
 
|
 
|
&nbsp;
+
*  [[CSC231 Final Exam Fall 2017 | Final take-home exam]] is given out on <font color="magenta">Wednesday</font>.  Due a week later.
 
|
 
|
*
+
* [[CSC231_An_Introduction_to_Fixed-_and_Floating-Point_Numbers | Fixed and Floating-point number formats]]
 
|}
 
|}
 
<br />
 
<br />

Latest revision as of 18:35, 6 January 2018

--D. Thiebaut (talk) 11:33, 11 July 2017 (EDT)



Home | Syllabus | Schedule | Links & Resources | TA Hours



 


Week 1 Sept. 8    


Topics: Introduction Lab/Hw Reading
  • Friday
  • Syllabus
  • Class accounts: run the command setup231.sh at the command line the first time you login to your account.
  • The main players for this semester:
  • PC
  • Processor
  • Memory
  • Disk
  • Structure
  • Presentation
  • Documentation

 

  • Reading
    • Chapter 1 in the 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 PC Assembly Language. Note, Carter uses 1A92h to represent a hexadecimal number. I prefer 0x1A92.



 


Week 2 Sept. 11    


Topics: Lab/Hw Reading
  • Monday
  • Emacs Lab
  • The assembly process
  • Declaring strings, and their location in memory
  • Wednesday
  • Friday
  • Reading
    • Chapter 1 in the 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 PC Assembly Language. Note, Carter uses 1A92h to represent a hexadecimal number. I prefer 0x1A92.



 


Week 3 Sept. 18    


Topics: Lab/Hw Reading
  • Monday
  • Review
  • The mov and add instructions
  • Integers (32-bit format)
  • Wednesday
  • Moving data around
  • int x=3, x=5, sum; sum = x+y;
  • slides
  • Friday
  • Bash lab #2: history, pushd, popd, cat, less, head, tail, grep



 


Week 4 Sept. 25    


Topics: Lab/Hw Reading
  • Monday
  • How integers are stored in memory
  • Endianness
  • Pentium Data Registers
  • declaring variables with db, dw, dd
  • Exercises, exercises, exercises!
  • Wednesday
  • Operating on bytes, words, and double-words
  • byte-, word-, and doubleword-registers and variables
  • Exercises, exercises, exercises
  • Simple Computer Simulator (SCS)
  • slides
  • Friday



 


Week 5 Oct. 2    


Topics: Lab/Hw Reading
  • Monday
VideoLogo.png
VideoLogo.png
  • Wednesday
  • More arithmetic operations
  • Following the execution of a program with the Simple Computer Simulator.
  • slides
  • Friday
  • Linux Lab #4: Vi text editor, Redirection of stdin, stderr, and stdout
  • Section 6.5.1.2 in Hall's Art of Assembly
  • Sections 1.5 an 1.6 in Hall's Art of Assembly
  • Section 6.5.6 and 6.5.7 on MUL and DIV in Hall's text. Skip the parts about IMUL, and IDIV which require knowledge of signed numbers. Also skip the part about the decimal adjust and other instructions in these sections.
  • For next week, prepare by reading Section 1.7



 


Week 6 Oct. 9    


Topics: Lab/Hw Reading
  • Monday: Fall Break
  • Wednesday
  • Friday the 13!
BlackCat.png

 



 


Week 7 Oct. 16    


Topics: Lab/Hw Reading
  • Monday
  • Binary addition
  • Binary adder with logic gates
  • Wednesday
  • Friday



 


Week 8 Oct. 23    


Topics: Lab/Hw Reading
  • Monday

 



 


Week 9 Oct. 30    


Topics: Lab/Hw Reading
  • Monday
  • Back to the LOOP instruction
  • Indirect addressing & addressing modes
  • Wednesday
  • Friday



 


Week 10 Nov. 6    


Topics: Lab/Hw Reading
Serpinski.png
  • Monday
  • Introduction to the Game of Life
  • Wednesday
  • Continue with game of life
  • Flags register
  • Jumps and Conditional Jumps
  • Slides
  • Friday



 


Week 11 Nov. 13    


Topics: Functions Lab/Hw Reading
  • Monday
  • Continue with conditional jumps
  • The Stack segment
  • Push & Pop instructions
  • Wednesday
  • Friday


Solution programs

  • Functions. Functions are also called procedures when dealing with assembly. You'll find this term used in Randy Hyde's documentation. Also, Hydes uses the proc and endp directives to define functions, which is fine. We won't in this class. Functions work just as well without!



 


Week 12 Nov. 20    


Topics: Lab/Hw Reading
  • Monday
  • We continue with functions and passing parameters via the stack
  • Slides


TurkeyThanksgiving.jpg
  • Wednesday/Friday THANKSGIVING BREAK

No homework assignment this week...



 


Week 13 Nov. 27    


Topics: Recursion Lab/Hw Reading
  • Monday
VideoLogo.png
  • Studying a recursive Factorial function: Python, Java, Assembly, stack frame, stack overflow.
  • Wednesday
  • Exploring various issues related to recursion
  • Slides
  • Friday


Solution programs and answers for Homework #8

  • Recursion chapter in Randy Hall's Art of Assembly. Hall uses 16-bit registers (ax, bx, bp, etc...) but the reasoning is the same as for 32-bit registers.



 


Week 14 Dec. 4    


Topics: Fixed and Floating-Point Numbers Lab/Hw Reading
  • Monday
  • Fixed-Point Numbers, U(a,b), and A(a, b)
  • Wednesday
  • Friday
  • Homework 9 is a make-up homework that can be used to replace the grade of Homework 1 to Homework 8.




 


Week 15 Dec. 11    


Topics: Lab/Hw Reading
  • Monday, Wednesday