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.