V22.0201 - Machine Organization I
Fall 2003

Section 2

Robert Dewar

Phone: (212) 998-3498

Office: Warren Weaver Hall, Room 527
Class: MW  12:30 -  1:45 Room 109 WWH
Office Hours: tba

Section 3

Nathan Hull

Phone: (212) 998-3152

Office: Warren Weaver Hall, Room 423
Class: TTh   2:00 -  3:15 Room 101 WWH
Office Hours: Tues/Thur 5:00 - 6:00

Introduction: Machine Organization I is the first semester of a two semester sequence which introduces the underlying fundamentals of a computer's structure. Prerequisites include an introduction to a high level language such as Java, Ada or Pascal (V22.0101) and an understanding of Data Structures (V22.0102). This first semester of the sequence concentrates on the Assembly Language for the Intel x86 series of chips, which is the heart of the IBM PC and clones, and an introduction to the C language. The second semester will introduce Operating Systems.


The C Programming Language by Brian W. Kernighan Dennis M. Ritchie
ISBN: 0131101633
Prentice Hall (available at the NYU bookstore)

Homework: There will be approximately 4 small homework assignments plus a large, semester project. This semester project will involve writing a complete video game. The design of this project must be approved by the teacher. The small homework assignments will each be worth 5% of the final grade, and the semester project will count for 30%. Extra credit is possible on the final project.

Tests: There will be one Quiz early in the semester, worth 5% of the grade, A Midterm worth 20%, a Department Final Exam worth 30%.

Course Outline

1. Introduction

2. Bases and Conversions

3. Binary Representations

4. Memory Model & Simple Assembler Programs

5. Simple Assembler Programs cont.

6. More Assembler Programs & QUIZ (actual date TBA)

7. Arithmetic

8. Jump instructions

9. Index Registers

10. Logical and Shift Instructions

11. Logical and Shift Instructions cont.

12. Review

13. MIDTERM (date TBA)

14. Stack and Subroutines

15. Parameter Passing

16. Segmentation and Advanced Memory Models

17. C Language

18. C pointers and arrays

19. Simple BIOS INT services

20. Mouse Interrupt & Sound Routines

21. GAME program and Joystick routines

22. C Parameter Passing

23. C Pointers

24. C & Asm Recursion

25. GCC & AT&T Asm Syntax

26. C Arrays & Pointers, p.2

27. Review for Final Examination