WPI Worcester Polytechnic Institute

Computer Science Department
------------------------------------------

CS2011, C Term 2002

Introduction to Machine Organization and Assembly Language

Teaching Staff

Instructor: Janet E. Burge

Email: jburge-at-cs.wpi.edu
Office: FL 144
Office hours: M: 10:00, T: 9:00, Th: 9:00, 2:00

TAs/SA Office Hours (CS Annex):

        TAs:

            Katica Dimitrova:    M: 7:00, T: 5:00, Th: 11:00

            Kavita Kanetkar:    M: 2:00, T: 11:00, Th: 5:00

            Senthil Palanisamy:    M: 11:00, T: 4:00, Th: 10:00

            Mukund Seshadri:    M: 3:00, T: 3:00, Th: 3:00

      SAs:

            Chris Barratt:            M: 4:00, T: 10:00, W: 11:00, Th: 4:00, F: 11:00

            Brian Roberts:           T: 7:00, W: 4:00 - 6:00, Th: 12:00, F: 10:00

Lectures

MTRF/1:00 - 1:50 in SL115. You should bring your text-book (Irvine) to lectures.

Labs

Important: You must attend the lab section you are registered in!  Lab space is limited. You will not be given credit for a lab done in a section other than the one you are registered for!

Section C01: 3:00   HL230
Section C02: 12:00 WB216, SL412
Section C03: 1:00   WB216, SL412
Section C04: 2:00   HL230
Section C05: 8:00   KH202

Note that Lab sections are not in order! 

Be sure to bring the following to lab:

You will need a PC Lan account!

Mailing Lists

Textbook

Required:

K.R. Irvine Assembly Language for Intel-Based Computers, 3rd edition, Prentice Hall, 2000

R.Hyde The Art of Assembly Language Programming http://webster.cs.ucr.edu/Page_asm/ArtOfAsm.html

Recommended

A.S. Tanenbaum, Structured Computer Organization, 4th Edition, Prentice Hall, 2000

-- the book is recommended, not required, because only parts of it will be used. This does not mean you will not need it! Several copies will be on reserve at the library.

Web page: http://cw.prenhall.com/bookbind/pubbooks/tanenbaum2/chapter0/deluxe.html

You can get copies of all the figures from the web page.

Grading

Course grading will be based on the following:
View your grades (up through hw5) here. The code is your midterm grade plus the first letter of your login name (or more if that was not unique enough). *** This is a static page and will not be updated if grades change. *** All lab grades are either 0 or 1.

A passing grade on the exams will be needed to pass the course. The exam pass threshold will not be determined until after the final exams are graded.

Homework is due at the START of the class period on the day that it is due. All homework and exams will be returned during the following laboratory session (at the soonest). If homework can not be picked up during the lab, it should be picked up from the TA assigned to your lab during his or her office hours.

C01 (3:00):    Kavita
C02 (12:00):  Senthil
C03 (1:00):    Katica
C04 (2:00):    Kavita
C05 (8:00):    Mukund

Note: Because the lowest homework and lab scores will be dropped, make-up lab sessions will not be offered under any circumstances and late homework will not be accepted. Homework submitted at the end (or middle!) of class rather than the start is considered late! Make-up exams will only be offered in case of serious health-related emergencies, and only with appropriate documentation signed by a medical doctor.

Useful Links

Syllabus

Some deviations from this schedule may occur. This is especially true for the recommended readings -- additional readings from the Tannenbaum text may be added.

The reading table indicates which books the reading is from as follows: (I) is Irvine, (T) is Tannenbaum, and (AoA) is Art of Assembly.

Date

Topic

Reading

Due

1/10

Introduction

1 (I)

 

1/11

Numbering Systems

Appendix A (I)

1.1 - 1.4 (AoA)

 

 

 

 

 

1/14

Representing Information: Signed and Unsigned Numbers

 

1.7, 1.8, 1.10 (AoA)

Appendix  B (T)  

 

 

1/15

Floating Point Numbers

 

14.1, 14.2 (AoA)

Appendix B (T)  

 

1/16

Lab 1: Using Debug

 

 

1/17

Computer Architecture

2 (I)  

 

1/18

Machine Code Programming  
(how to do homework 2!)

Lecture notes and Machine Code Handout

Homework 1

 

 

 

 

1/21

Assembly Language Programs

Using TASM

Data Movement Instructions

3.1 - 3.4 (I)

Appendix D (I)

3.6 (I)

 

1/22

Linking separate files

CMP, Conditional Jumps

High Level Logic Structures

13.1, 13.3 (I)  

6.1 - 6.2 (I)

6.4 (I)

 

1/23

Lab 2:  Using TASM

 

 

1/24

Arithmetic Instructions

Overflow

MUL/DIV instructions

3.7 (I)

7.4(I)  

 

1/25

LOOP, JMP  

4.3, 6.3 (I)  

Homework 2
FAQ

 

 

 

 

1/28

Addressing: Immediate, Direct, Indirect  

3.8, 4.4 (I)  

1/29

Addressing:  Displacement, Indexed  

 

 

1/30

Lab 3: Indirect Addressing

 

 

1/31

DOS and BIOS Service Calls  

File Processing

5.4 - 5.7 (I)  

12.1 - 12.3 (I)

 

2/1

Stack  

 5.1 - 5.3 (I)

Homework 3

 

 

 

 

2/4

Catch-Up/Review

 

 

2/5

** Midterm Exam **
Sample Midterm

 

 

2/6

Lab 4: DOS Function Calls
lab4.asm
LAB4FILE.TXT

 

 

2/7

Subroutines, Parameter Passing, Binary/ASCII conversion  

9.3.1 - 9.3.2 (I)

9.6 - 9.7 (I)

 

2/8

Recursion  

Shift  instructions

5.8 (I) 

7.1 (I)

Homework 4

 

 

 

 

2/11

C++/Assembler Interface

9.3.6, 9.4 (I)

 

2/12

Boolean Algebra  

Boolean Instructions

2.1 - 2.4 (AoA)  

6.1 (I)

 

2/13

Lab 5:  C++/Assembler Interface
lab5.cpp

 

 

2/14

  Advising Appointment Day

 

 

2/15

Equivalent Circuits

Karnaugh Maps

2.5 (AoA)  
3.1 (T)

Homework 5

 

 

 

 

2/18

Combinational Circuits

2.6, 2.7 (AoA)  
3.2 (T)

 

2/19

Sequential Circuits

Memory

3.3 (T)

 

2/20

Lab 6: Shift/Rotate; Adders

lab6.asm

 

 

2/21

Intro to Microprogramming

class handout

 

2/22

Sample Microarchitecture

Homework 6

 

 

 

 

2/25

More Microprogramming

 

 

2/26

Catch-Up/Review

 

 

2/27

Help Sessions - CS Annex

 

 

2/28

** Final Exam **
Sample Final
Exam version of Microprogram Handout

 

 

Academic Honesty

[Return to the WPI Homepage] [Return to the CS Homepage] [Return to Janet Burge's Home Page]