CS3140 Low-level Programming II

Assembly language is used as the vehicle to introduce students to the principles of program construction at the machine code and assembly language levels. Students will be exposed to assembly languages as formally documented by CPU designers. By studying real-world processors, the differences between complex and reduced instruction set are illustrated. Students will study the use of assemblers, linkers, and loaders in the program creation process. Common executable file formats are studied as well as standard calling conventions used to interface assembly language functions with high order languages, viz. C, functions and operating system services. The theory of disassembly and tools for disassembling executable files are covered for the purpose of analyzing binary programs.


CS3040 or Consent of Instructor.

Lecture Hours


Lab Hours