V22.0201 - Machine Organization I

Fall 1997

Professor: Nathan Hull

Office: 423 Warren Weaver Hall


Phone: 988-3152

Office Hours: Tuesday & Thursday 1:30 - 2:30

Mailbox: Ground floor of Warren Weaver

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 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. The second semester will introduce the C language.


1) Assembly Language Programming and Organization of the IBM PC by Ytha Yu and Charles Marut.

2) At least two 3 1/2 inch high density diskettes. Make certain that you keep two copies of your work at all times!

3) Optional: Turbo Assembler and Debugger by Borland. This is available at an extremely steep discount from the Bookstore, and is available on the ACF networks for use in the labs.


4) Optional Assembly Language Programming for the IBM PC by Robert Dewar. This is available at Unique Copy.

Resources: This course is taught using the IBM PC family and clones. The assembler used is Borland's Turbo Assembler (TAS), together with the Turbo Debugger (TDB). At the beginning of the semester, we will also use the Dewar Assembler (DAS) and the Dewar Debugger (DDB)

Homework: There will be approximately 3 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. Simple BIOS INT services

18. Simple BIOS INT services cont.

19. GAME program and Joystick routines

20. Mouse Interrupt

21. Sound Routines

22. Multiplication and Division

23. Machine Language

24. Compiler Generated Code

25. Review for Final Examination