V22.0201 - Machine Organization I
Professor: Nathan Hull
Office: 423 Warren Weaver Hall
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
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%.
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)
8. Jump instructions
9. Index Registers
10. Logical and Shift Instructions
11. Logical and Shift Instructions cont.
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