Difference between revisions of "CSC231 Schedule Spring 2017"

From dftwiki3
Jump to: navigation, search
( )
( )
Line 391: Line 391:
 
{| 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''':  Function, Stack, Push, Pop
+
|width="60%"| '''Topics''':  Function, Stack, Push, Pop, Recursion
 
|width="15%"| '''Lab/Hw'''
 
|width="15%"| '''Lab/Hw'''
 
|width="25%"| '''Reading'''  
 
|width="25%"| '''Reading'''  
Line 398: Line 398:
 
* '''Mon/Wed'''
 
* '''Mon/Wed'''
 
::* Functions, The STACK, ESP, EBP, Push, Pop
 
::* Functions, The STACK, ESP, EBP, Push, Pop
::*  [[Media:CSC231_Week11_2017.pdf | slides (pdf)]]
+
::*  [[Media:CSC231_Week11_2017b.pdf | slides (pdf)]]
 
* '''Friday''':
 
* '''Friday''':
 
::*  Linux Lab:
 
::*  Linux Lab:

Revision as of 09:28, 12 April 2017

--D. Thiebaut (talk) 10:37, 2 December 2016 (EST)



Home | Syllabus | Schedule | Links & Resources



 


Week 1 Jan 26, 27    


Topics: Introduction Lab/Hw Reading
  • Friday
  • Syllabus
  • Class accounts
  • 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 Jan 30, Feb 1, 3    


Topics: Emacs, assembly, hexdump Lab/Hw Reading
  • Mon/Wed
  • A few words about "When Computers were Human," a video by David Alan Grier, editor of IEEE Annals of History of Computing. (In reference to the movie "Hidden Figures.")



  • Friday:


 


Week 3 Feb 6, 8, 10    


Topics: Registers (eax, ax, al). The ADD Instruction Lab/Hw Reading
  • Mon/Wed
  • Back to hexdump and listings
  • The mov instruction
  • General purpose registers: al, ah, ax, eax...
  • moving information in an out of registers and memory
  • the add instruction
  • slides (pdf)
  • Friday:
  • Linux Lab: More about files and directories. pushd, popd, history, less, cat, file, grep
  • Moodle quiz on lab
  • Homework #1 will be released on Monday 2/6 at 11:00 a.m. You will find it on Moodle and you will have until 2/13/17 11:55 p.m. to submit it.


 


Week 4 Feb 13, 15, 17    


Topics: SUB, DW, DD, DB, Binary, Hex, Decimal conversion. Lab/Hw Reading
  • Mon/Wed
  • A few words about the programming part of Homework #2
  • The SUB instruction (subtracts source from dest)
  • Review db, dw, dd, and how variables fit in memory
  • Step-by-step execution of a program
  • Getting a sense of speed of computation
  • Comparing to Arduino
  • Comparing to Raspberry Pi 3
  • Number systems. Understanding decimal, binary, and hexadecimal
  • Friday:
  • Linux Lab: Manual Pages, and pipes.
  • Moodle quiz on lab
  • Homework #2 is released on Monday 2/13 at 11:00 a.m. It contains a programming assignment, and a quiz to be answered on Moodle. The due date is Monday 2/20/17 11:55 p.m.
  • Read Chapter 1 in the Art of Assembly reference by Randy Hyde, Sections 1.0 to 1.4.


 


Week 5 Feb 20    


Topics: Conversion binary, hex, decimal. Lab/Hw Reading
  • Mon/Wed"
  • Friday:
  • Linux Lab: Vi text editor, Redirection of stdin, and stdout
  • Homework #3 is released on Monday 2/20 at 11:00 a.m. It contains several quizzes to be answered on Moodle.. The due date is Monday 2/27/17 11:55 p.m.
  • 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 Feb 28, Mar 2    


Topics: Logical instructions, Logic Design, Signed Numbers Lab/Hw Reading
  • Mon/Wed
  • Logical instructions
  • Logic design: A 2-bit adder (this won't be on the midterm exam)
  • Signed numbers
  • Signed magnitude
  • 1's Complement
  • 2's Complement
  • Friday:
  • Linux Lab: Nasm as a tool, more advanced redirections, for-loops


 


Week 7 Mar 7, 9    


Topics: 2's Complement, Midterm Lab/Hw Reading
  • Mon
  • Wed: MIDTERM EXAM: on paper, in class, closed books, closed notes, closed computers. - (solutions)
  • Friday:
  • No class
  • No homework assignment given out this week


SPRING BREAK


 


Week 8 Mar 20, 22, 24    


Topics: Loops and Addressing Modes Lab/Hw Reading
  • Mon/Wed
  • The Loop instruction
  • Indirect Addressing Modes
  • Working with arrays
  • slides (pdf)
  • Miderm exams will be returned. The grading was done as follows: 11 problems worth 10 points each were graded and generated a number between 0 and 110, which was translated into a letter grade. This letter grade was then transformed into another number using Moodle's number-letter translation table. This number is the one entered in Moodle. (Solutions to Midterm Problems)
  • Friday:
  • No homework this week


 


Week 9 Mar 27, 29, 31    


Topics: Loops, arrays, game of life, conditional jumps Lab/Hw Reading
  • Mon/Wed
  • Friday:


 


Week 10 Apr 3, 5, 7    


Topics: Conditional Jumps Lab/Hw Reading
  • Mon/Wed
  • Friday:


 


Week 11 Apr 11, 13    


Topics: Function, Stack, Push, Pop, Recursion Lab/Hw Reading
  • Mon/Wed
  • Friday:
  • Linux Lab:
  • 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 Apr 18, 20    


Topics: Lab/Hw Reading
  • Mon/Wed
  • Friday:
  • Linux Lab:


 


Week 13 Apr 25, 27    


Topics: Lab/Hw Reading
  • Mon/Wed
  • Friday:
  • Linux Lab:


 


Week 14 May 2, 4    


Topics: Lab/Hw Reading
  • Mon/Wed
  • Friday:
  • Linux Lab


Links_and_Resources


Pipelines, Branch Prediction, Hyper-Threading



Bash Shell & Linux Resources