Contact | References | Grading | Objective | Schedule&Materials
Welcome to the CS2011 homepage (a work in progress). Here you'll find general information about the course, useful links, and downloadable materials that, when combined with participation in the lectures and labs, will help you benefit as much as possible from taking CS2011. Use the menu options above to find your way around. Please note that some of the links in the Schedule&Materials section will become functional only shortly before they are needed for the relevant lectures/labs.
Section | Time | Place |
A01 | W 10-10:50 | AK120D |
A02 | W 2-2:50 | AK120D |
A03 | W 11-11:50 | AK120D |
A04 | W 3-3:50 | AK120D |
also see the book's web site at http://www.nuvisionmiami.com/books/asm/
What this course is about
This course provides an introduction to the functional organization
of computers, with an emphasis on issues relevant to assembly language
programming.
Topics include elements of machine architecture, machine language,
assembly language, linking, loading, and logic circuits.
Recommended background
You should have experience with programming techniques and basic
data structures in C/C++ or Java at the level of
CS 2005.
Approximate Schedule of Topics
Notes:
Some deviations from this schedule may occur.
Any updates will appear only at
http://www.cs.wpi.edu/~alvarez/CS2011/A99/.
The downloadable materials provided below complement the lectures,
but are by no means intended to replace them. Students are responsible
for all material covered in the lectures also.
Certain links may become available only shortly before the
corresponding topics are addressed in the lectures or labs.
Week |   Reading/Homework
I: Irvine T: Tanenbaum IA: Intel Architecture Software Developer's Manual AA: The Art of Assembly Language Programming |
Topics/Materials
see download instructions |
Aug. 26-27 | I: chapt. 1, appendix A
T: chapt. 1, appendices A, B |
Overview, Course Objectives
Data representation Binary digits (.pdf) Unsigned integers (.pdf) Signed integers (.pdf) ASCII Unicode (www.unicode.org) |
Aug. 30 - Sept. 3 | I: chapter 2, 3.1-3.6, 4.1-4.3, 15.2, 15.4, appendix B
T: 2.1.1-2.1.2, 2.2.1-2.2.3, 5.1 through 5.1.5; 5.2.3; 5.3.3, 7.1 IA, vol. 1: chapter 3, 5.1, 7.2 IA, vol. 2: chapter 2 HW1 (due Sept. 3) |
IEEE 754 Standard
Memory, addressing Little endian convention Instruction set level 80X86 architecture Instruction encoding Assembly language level Assembler directives Data allocation Data movement First assembly program Same program with comments Assemblers, linkers MASM/LINK example |
Sept. 7-10
No class Sept. 6 Test 1, Sept. 10 |
I: 3.3, 3.7-3.8, 4.5
T: 7.3-7.4 AA: 4.6 HW2 (due Sept. 10) Topics for Test 1 (not exhaustive) |
Assembly language level
Running TASM Control branching JMP, LOOP example Arithmetic instructions Carry and overflow flags |
Sept. 13-17 |
I: 4.4, 4.7, 5.1-5.7, 6.2-6.4, chapter 8, 9.3-9.4, appendix G
T: 5.4, 7.2, 5.6.5 IA, vol. 1: 4.1-4.3.4 DOS interrupts list
HW3 (due Sept. 17)
|
Conditional branching
IF-THEN example Stack Addressing modes Macros, procedures Example Parameter passing Stack frames Interrupts DOS/BIOS function calls DOS console I/O example BIOS pixel control example Linking modules example: Recursion |
Sept. 20-24
Test 2, Sept. 24 |
I: 5.8, 7.1-7.2, 7.4, 9.2, 9.6-9.7
IA, vol. 1: 7.3-7.5 HW4 (due Sept. 24) Topics for Test 2 (not exhaustive) |
Multiplication, division Multiplication by shifting & adding Binary-ASCII conversion writeint.asm (see Irvine 9.6) |
Sept. 27 - Oct. 1
|
I: 6.1, 12.1, 12.3, 13
HW5 (due Oct. 1)
|
Bit-level manipulation
PPT slides File I/O Examples Linking to C++ |
Oct. 4-8 | T: chapter 3
HW6 (due Oct. 8) Extra Credit (due Oct. 8) |
Digital logic level
Boolean algebra Karnaugh maps Notes (.pdf) Examples of combinational circuits Basic NOR latch Flip-flops Memory Examples of sequential circuits |
Oct. 11-14
Test 3, Oct. 12 Term ends Th. Oct. 14 |
T: 4.1-4.3
Topics for Test 3 (not exhaustive) |
Additional topics if time allows |