CSci 350 Home Page
CSci 350 is an 80x86 assembly language course with a prerequisite of CSci 370.
Announcements
Tests:
The first test is scheduled for Wednesday, March 7.
The final exam was to be on Thursday, May 10th at 1:00.
The assignments
The macro writing assignment.
The floating point and C++ assignment. This has to be more fun.
The table assignment will use indexing and string instructions.
The Combinations problem returns to exercise flow and subroutines.
The first integer arithmetic assignment.
The Hello World assignment. You should download and install AsmShell and the MASM32 assembler.
Presentations and Examples
Yet to do.
SSE demonstration.
Introduction to the 64 bit world.
Completed.
The SSE instructions - part 1.
The MMX instructions - part 1.
CBuilder demo of MMX instructions demonstration. To run this create a new CBuilder project in a new directory, which you may name anything.
However, name the unit that contains the window stuff c2a.cpp. Then unzip the file into the new directory, overwriting c2a. Add to the project subr.asm.
The MMX instructions - part 2.
The evolution of Intel processors.
Finding processor information.
CPU ID demonstration.
Conditional Assembly 2.
The fourth macro demonstration.
Conditional Assembly 1.
The third macro demonstration.
A CBuilder project with assembly language. Revised 4/4.
More on macros.
The second macro demonstration.
Simple and parameterized macros.
The first and most boring macro demonstration.
The first macro presentation.
Enter and leave.
Assembly subroutines in a high level langauge.
Assembly in C.
Third floating point presentation.
The third floating point demonstration.
The second floating point demonstration. Revised on 3/5 for BCD.
The floating point demonstration built in class on 3/2.
The first floating point demonstration.
Second floating point presentation.
First floating point presentation.
Anything below this is fair game on the test.
The start of the string demonstration.
String instructions.
The two dimension array demonstration.
Month decode via indexing and indirect jump.
Multiple dimension arrays. Corrected after class.
Arrays and subscripting.
Indirect jumps.
Assembly Procedures.
Demonstration code on the loop statement.
Constructing flow of control.
Demonstration code from 1/27.
Important Console Invoke Functions.
Debugging macros for MASM32.
Integer arithmetic.
Bit operators.
Our first instructions.
Introduction to Assembly.
Preliminary assembly information.
Software
You will need as Assembler for this course. At least for now we will use
MASM32, which may be downloaded here.
You are not required to use AsmShell, but it is recommended.
Get Asm Shell off of my download page. You should also consider
the writeup on Asm Shell options.
Examples and other things
Other links
The demise of the low level programmer.
Ralf Brown's List of DOS Interrupts If you get a not found area, then the second WWW in the URL got converted to lower case. Retype and try again. Another link to it.
Documents the many DOS interrupts. Most are otherwise undocumented.
Potemkin's Hackers Group
Contains documentation on operation codes that are undocumented or misdocumented.
Manuals for the Pentium III
The syllabus and other overview documents:
The CS 350 syllabus
CS 350 Course Outline
Return links
Return to Curt Hill's home page.
Last time I updated this page: May 4, 2012.