Lectures   Lab Page
Policy/Syllabus
This is the Policy/Syllabus for
this course.
ECE 3724/CS 3124 Lab Home Page
Follow this
link to the ECE 3724/CS 3124 lab
home page all sections. You can find the lab policy, lab assignments,
and schedule of lab assignments on this page.
Email List
The class EMAIL list will be the one
provided by Information Technology Services (ITS). The email list
is ece3724-02.fall2001@courses.msstate.edu . All students, including
those registered under course number cs3124, will be on this list.
See the
Class EMAIL Faq for further information about how to be added to
the list.
WARNING!!! It is your responsibility to make sure that you are on
this email list. I will send many homework/test/lecture announcements
to this list -- you are responsible for reading the emails sent to
this list.
WebCT Course Ware
I will be using a University WWW resource called 'WebCT' for most
homework assignments. To access the EE 3724 WebCT course page, go to
the WebCT home page , and click on the
"Log into myWebCT" option. You will need to use your MSU NetID and password to login into WebCT.
If you do not know your MSU Netid, look it up in the
online campus directory: http://www.msstate.edu/directory ,
the MSU NetID is right next to your name. If you have never logged into a WebCT course before,
the login name is your MSU NetID, the default passwd is your 6-digit birthdate (mmddyy). Once you
have logged into WebCT, use the Password Tool ("Change Password" in upper right corner) to change
your password.
Once you are logged into WebCT, you should see under "Courses" on the left-hand side the course
"ECE 3724-Microprocessors I" (if you do not see this then this means that you have not been added yet
- please send me email at reese@ece.msstate.edu and I will add you to the course).
Click on the course name to access the course.
I will be using WebCT only for online homework quizzes.
To take a WebCT quiz, click on the Online
Quizzes once you have accessed the course . You will be presented with a list of multiple choice questions. After
choosing an answer for a question, click on the 'submit answer'
button. This MUST BE DONE FOR EACH QUESTION. Simply choosing an
answer does not submit the answer, you must click on the "submit
answer" button. There is a chart on the right side that will show how
many questions have answers submitted for them; don't leave the quiz
until you have answered all of the questions.
Homework Assignments
No late homeworks are accepted. Homeworks are due at class time on the
due date.
- Due Tues, Aug 28: Homework #1 ,
SOLUTION (PDF)
- Due Thurs, Aug 30: WebCT Quiz: Number Systems Review
- Due Thurs, Sep 9: Problem 10 in Section 5.10, Irvine ,
SOLUTION
- Due Thurs, Oct 4: Problem 11 in Section 4.9, Irvine. Your program should work with any string. ,
SOLUTION
- Due Thurs, Oct 11: Write a program that inputs a string from the console (use the DOS AH=0AH, Int 21h
function, section 5.5.2 in Irvine textbook), counts the number of words in the string and
displays this number using the 'WriteInt' procedure from the Irvine link library. For example,
the string "I yam what I yam!" has 5 words. Assume that any number of spaces are between words
(but only spaces - tabs and other whitespace characters are not allowed). Anything that is not a space
is considered part of a word. Leading and trailing spaces in the string is allowed.
SOLUTION
Other WebCT quizzes will be posted on the WebCT course page. I
will announce in class and via email when they are due. You can also look at the
'availability' dates on the quizzes in order to determine when they
are due. You should regularly check the WebCT course page to see if a
quiz has been posted. I will not post WebCT quiz dates to this page.
Syllabus (Fall '01)
- Aug 20: Intro to Computer Organization (Notes) ,Review of Binary codes
(Irvine Chap 1),Intro to X86 architecture
- Aug 27: Segmented Memory (Irvine Chapt 2, Uffenbeck Chap 3), Addressing Modes, Data Xfer Instructions (Irvine
Chap 3,4)
- Sep 3: Introduction to Masm, Arithmetic instructions
- Sep 10: Logic Instructions (Irvine Chap 7), Program Control (Irvine Chap 6)
- Sep 17: Test #1, Stack Usage, Parameter Passing (Irvine Chap 9)
- Sep 24: DOS 21H functions (Irvine 5.5) , ASCII Number IO (Irvine 9.6, 9.7), Irvine Link library (Irvine 9.5)
- Oct 1: Bus Transactions (Uffenbeck Chap 7), Address Decoding (Uffenbeck Chap 7)
- Oct 8: Memory Technologies (Notes, Uffenbeck Chap 7), Rambus Memory (Notes)
- Oct 15: Test #2, Parallel IO (Uffenbeck Chap 8)
- Oct 22: Computer Interrupts (Uffenbeck Chap 9), Software Interrupts, Asynchronous Serial IO (Uffenbeck Chap 10)
- Oct 29: Serial IO with 16550 UART (Uffenbeck Chap 10),USB, Firewire (Notes)
- Nov 5: Floating Point, Floating Point execution (Notes, Irivine Chap 15)
- Nov 12: System Busses (Notes,Uffenbeck Chap 11), Chipsets (Notes)
- Nov 19: Test #3, Fixed Disks (Notes)
- Nov 26: Video (Notes), MMX/SIMD Extensions, Catchup (Notes)
- Dec 3: Review for Final Exams
Lectures (this semester)
I will move notes from the 'previous semesters lectures' list to the
'current semesters lectures' list as we cover them in class.
-
EE 3724
Introduction , PDF
- Number
System Review ,
PDF
- X86
Programming Model ,
PDF
- X86
Memory Model, Segmented Memory ,
PDF
- X86
Addressing Modes ,
PDF
- X86
MASM, introduction to X86 instructions ,
PDF
- X86
Arithmetic instructions ,
PDF
- X86
Logic instructions ,
PDF
- X86
Program Control instructions ,
PDF ,
Largest,smallest number
example from Irvine book
Some example programs
- Add 4 bytes (Lab #4 example)
- Add 4 words (Lab #4 example)
- Hello World example
- DOS INT21 example
- Print out a number in binary
- Input a string using temporary storage on stack
- Print random numbers using Irvine library
- Input decimal number. . Use INT21, function 0Ah, to input 2-digit string that
represents number from 0-99. Convert to binary, use Irvine Library to print out number
in decimal, binary, hex.
Lectures (previous semesters)
The majority of these notes were done by Professor Mitch Thornton.
-
EE 3724
Introduction , PDF
- Number
System Review ,
PDF
- X86
Programming Model ,
PDF
- X86
Memory Model, Segmented Memory ,
PDF
- X86
Addressing Modes ,
PDF
- X86
MASM, introduction to X86 instructions ,
PDF
- X86
Arithmetic instructions ,
PDF
- X86
Logic instructions ,
PDF
- X86
Program Control instructions ,
PDF ,
Largest,smallest number
example from Irvine book
- Intro to X86
Stack Operations ,
PDF ,
Subroutine
example from Irvine book
- DOS INT 21H functions,
PDF ,
Example that uses
DOS INT21H to get a character from user and echo to screen
-
Subroutine Parameter Passing ,
PDF ,
Example showing data
storage on stack
-
Input/Ouput of Numbers in ASCII format, Irvine Link Library ,
PDF ,
Example showing use of Irvine
Library to print random numbers
-
Bus Transactions , PDF
-
Address Decoding for Memory systems ,
PDF
-
Memory Technologies ,
PDF
-
Rambus Memory ,
PDF
-
Parallel IO ,
PDF
-
Computer Interrupts ,
PDF
-
Software Interrupts ,
PDF
-
Serial IO (Asychronous) ,
PDF
-
Serial IO via the 16550 UART ,
PDF
-
Interrupt-Driven IO ,
PDF ,
Assembly language example of Receive data interrupt routine for 16550D
-
Universal Serial Bus, IEEE Firewire ,
PDF ,
Full USB specification (PDF)
,
Additional info on IEEE Firewire
Additional info on IEEE Firewire
-
General Notes on busses ,
PDF
-
System Chipsets ,
PDF
-
IEEE Floating Point ,
PDF
-
Fixed Disks ,
PDF
-
Video Basics ,
PDF
Sample Tests (Old)
Will be posted here.
- Test 1 Solutions, Summer
'00
- Test 2 Solutions, Summer
'00
- Memory Study guide, Summer
'00
- Test #3 Study Guide, Summer
'00
- Test #3 Solutions, Summer
'00
- Test #4 Study Guide, Summer
'00
- Test #4 Solutions, Summer
'00
- Test 1 Solutions, Fall '00
- Test 2 Solutions, Fall '00
- Test 3 Solutions, Fall '00
- Test 4 Solutions, Fall '00
- Test 1 Solutions, Spring '01
- Test 2 Solutions, Spring '01
- Test 3 Solutions, Spring '01
- Test 4 Solutions, Spring '01
- Test 1 Solutions, Fall '01
- Test 2 Solutions, Fall '01
- Test 3 Solutions, Fall '01
Improving your Programming Skills
If you have done poorly on the programming problems on a test, and
want to improve your programming skills, then work the following problems
from the Irvine textbook, 3rd Edition. If you need help solving/debugging them, I
would be happy to assist, but I will not give you the answer. You can
only become better at programming via practice.
- Problem 1, Section 4.9, Simple Calculation Problem
- Problem 7, Section 4.9, Display Random String
- Problem 6, Section 6.6, Real Number Input (define a buffer area
to place the number string into, make it big enough to hold 128
chars).
- Problem 11, Section 6.6, Reverse the words in a string
- Problem 10, Section 9.9, Bin16_toAsc Procedure
Extra Credit
Data Sheets
- Memory Data Sheets and notes on memory technologies may be found here
Other Links
There are HUNDREDS of various X86 assembly language sites on the
WWW. You can find lots of source code examples, tutorials, project
ideas, etc. Here are a few that you might find useful.
- HelpPC utility . A .com program run from the DOS command prompt that provides help on DOS, BIOS, Mouse interrupts. Very handy.
- PC assembly language
Tutorials/Demos by Bob Richardson . This page uses the a86/d86
assembler/debugger for everything and has some good tutorials.
- Kip Irvine's
list of assembly language resources .
-
Intel Literature Center . From this site, you can download the
complete X86 instruction set manual in PDF format.
- X86 instruction set manual from Intel (PDF, warning
--- 6 Mbytes!!!)
- History of
Microprocessors
- General Computer
Architecture Page