CS 200 HM COMPUTER ORGANIZATION & ASM LANGUAGE HO1 PSU WINTER 2003 Handout 1 (2/13/2003) Course Title: CRN: Time: Room: First Day: Last Day: Grading and grader: Office hours: Instructor: Class material: Book Ref: Masm reference: Computer Organization and Assembly Language, CS 200 40737, section 2 Mondays, 16:00 - 17:50 SH 212, Portland State University Monday 1/6/2003 Wednesday 3/12/2003 anshu@cs.pdx.edu , hand in HW in paper form at start of class after lectures in class, by phone, email any time, and by special appointment Dr. Herbert G. Mayer, 264-4205, herb@cs.pdx.edu http://www.cs.pdx.edu/~herb click on Class Information, and then on CS 200 http://csapp.cs.cmu.edu/public/students.html http://www.clipx.net/ng/masm Prerequisites: CS 161. Good understanding of number representation and of C++ or C. Pascal or Ada or another high-level, machine independent programming language will do, if you have good programming experience. Text Books: Required text: Computer Systems, A Programmer’s Perspective, by Randal E. Bryant and David R. O’Hallaron, PH ISBN 0-13-009757-8, © 2002 or newer. Two text books are recommended: 1.) If you are weak in C, I recommend: The C programming language, by B. W. Kernighan and D. M. Richie, Prentice Hall SW Series, ISBN 0-13-110362-8, © 1988. 2.) If you wish to learn more about x86 assembly language programming, read: Assembly Language Programming for the IBM PC Family - 3rd edition, William B. Jones, Scott/Jones Inc., El Granada, CA., 2001, ISBN 1-57676-058-8 720 pages. Class description and goals: At conclusion of this course, you understand the Software-Hardware interface and interdependence. You also acquire a beginner’s understanding of the Intel x86 architecture and assembly language. The HW aspect of computer architecture will be discussed, though not in as much detail as the Advanced Computer Architecture course CS438. HW concepts will be exemplified via low-level C programming examples and the x86 assembly language. We’ll discuss low-level system software (SSW) components, assemblers, linkers, loaders, exception handlers, and I/O. This course will enable you to select future focus areas, such as compiler optimization (SW), dynamic branch prediction (HW), caching (ARCH), or the like. Milestones: You’ll complete 5 Homework (HW) assignments, two quizzes, a Midterm, and a Final Exam. Note that the Midterm weights the same as the Final. Grading: You can acquire up to 1,000 points total (100%). HWs account for 50% of your grade. 100 points each, quizzes for 10%, 50 points each; the Midterm 20%, and the Final 20%. The first homeworks focus on low-level C constructs. Winter 2003 1 HO 1 CS 200 HM COMPUTER ORGANIZATION & ASM LANGUAGE PSU WINTER 2003 HO1 Table of Grades: A 90-100% B >= 80% C >=70% D >=60% F <60% Homework Rules: HW must be turned in on paper at the beginning of class on the due date. Late HW will be accepted up to 1 week late, but you lose 15% of the total points. Read the on-line Lecture Notes, Handouts, and Homework Assignments, and read the book as suggested in the Course Outline. The remaining chapters of the required book will be read in CS 201. Course Outline, Major Milestones (HO: means you should read the on-line HandOut) Week 1 Mo 1 Wed 2 Mo 2 Wed 3 Mo 3 Wed 4 Mo 4 Wed 5 Mo 5 Wed 6 Mo 6 Wed 7 Mo 7 Wed 8 Mo 8 Wed 9 Mo 9 Wed 10 Mo 10 Wed Winter 2003 Reading Material, Key Dates Introduction, course outline, goals read ch 1, HO: Integer Number System; number representation HW1 due: Bit Manipulation, read ch 2; low-level C programming, key computer terms HW2 due: C Number Conversion; machine organization School Closed: MLK Day read ch 3; intro to x86, C pointers, HO: Simple Asm Program, HO: Assembler Intro read HO: Simple x85 IO; simple assembler program HW3 due: Binary trees via C pointers read ch 4, HO: x86 Memory Access; computer architecture, main modules, and assembler read ch 4, HO: Multiple Assembly Units; linking, loading, executing Quiz1, read ch 6 ; memory hierarchy ; x86 instructions read HO: x86 Call Return Mechanism; Midterm, HW4 due: Char and String Output No Class, read ch 7; run time stack multiple assembly units; x86 instructions 2nd part Quiz2; recursion implementation, in C, in x86 HW5 due: PutDec, read ch 8 caching architectures System bus, van Neumann bottleneck Transforming small, slow memories into large, fast memories via caches and VMM Re-read sections from all chapters 1-8, Summary Final 2 HO 1