Refer to Discussion Forum, Facilitator Introduction and Expectations
CS 370 - Assembly Programming
Describes the elements and techniques of assembly language programming for microprocessors used in the IBM compatible family of microcomputers. Introduces computer architectures, and discusses the concepts of data representations, processing instructions, addressing modes, macros, functions and procedures and file I/O.
In order to successfully complete this course, students are expected to have taken the prerequisite CS362 course or its equivalent. From CS362, you should have a working knowledge of the following topics:
Although CS370 introduces Assembly Programming, it is also a Computer Science course that introduces advanced programming concepts. Consequently, the ability to program at the CS362 learning outcome level is essential for successful in this course.
In this course you will learn about the architecture of a typical microprocessor and its role in a computer system. By studying the machine and assembly language of a particular processor, specifically the x86 family of processors, you will begin to understand how a high-level programming languages, such as C++ and Java, are actually translated (compiled), and prepared for execution, loaded, and executed on the computer.
You will become familiar with the basic tools used for low-level programming: the editor, assembler, linker, loader, debugger, and machine language monitor. Most importantly, you will understand how data is stored and manipulated at the lowest levels of machine activity, providing a solid framework for developing high-level programming skills.
Upon completion of this course, learners should be able to:
Irvine, K. R. (2014). Assembly language for x86 processors (7th ed.). Upper Saddle River, NJ: Prentice Hall (Pearson Education). ISBN: 978-0133769401 .
Visual Studio 2013 Express containing Microsoft Assembler (MASM), which can be downloaded (free) from the textbook author’s Website: http://www.kipirvine.com/asm/
Select the “Getting started with MASM” link.
Online Format: Sign on to worldclass.regis.edu and become familiar with the course navigation of the Web Curriculum. Complete assignments above.
Classroom-based Format: Complete assignments above by the first night of class.
Week | Topics | Readings | Graded Assignments or Assessments (Percentage) |
---|---|---|---|
1 |
|
Textbook: Chapters 1, 2, 3, & Chapter 4, sec 4.1 Online Content for Week 1 |
Introductions Pretest Quiz Participation in Discussions (10% for all entire course) Programming Assn 1 (10%) |
2 | Basic Arithmetic and Loop Instructions | Textbook: Chapter 4, sec 4.2 – 4.9 Online Content for Week 2 |
Participation in Discussions Programming Assn 2 (10%) Jesuit Key Values Essay (5%) |
3 | Procedures and the Stack and Conditional Processing Instructions | Textbook: Chapter 5 Online Content for Week 3 |
Participation in Discussions Programming Assn 3 (10%) |
4 | Boolean Instructions and Implementing Control Structures in Assembly Language | Textbook: Chapter 6 Online Content for Week 4 |
Participation in Discussions Programming Assn 4 (10%) Midterm (10%) |
5 | Shift and Rotate Instructions | Textbook: Chapter 7, sec 7.1 – 7.3 Online Content for Week 5 |
Participation in Discussions Programming Assn 5 - Part I: Documentation |
6 | Parsing Integer Data, and Extended Precision Arithmetic | Textbook: Chapter 7, sec 7.4 – 7.9 Online Content for Week 6 |
Participation in Discussions Programming Assn 5 - Part II: Program (10% for both parts) |
7 | Procedures and Parameters, Stack Frames, Multiple File Programs | Textbook: Chapter 8 Online Content for Week 7 |
Participation in Discussions Programming Assn 6 - Part I: Documentation |
8 | String Instructions, String Representations and Array Representations and Processing | Textbook: Chapter 9 Online Content for Week 8 |
Participation in Discussions Programming Assn 6 - Part II: Program (10% for both parts) Final exam (15%) |
TOTAL: 100% |
*Note to Classroom sections only: Exact due dates for programming assignments may be modified from what is indicated in the above Course Assignments and Activities grid. Your facilitator's syllabus, handed out the first night of class, will indicate any changes.
Each programming assignment will involve designing, implementing, and testing a program using the concepts discussed in the book and class.
Note: programs that do not assemble, are not modular, nor properly documented standards will not be accepted.
Programming assignments will be graded according to details listed in the rubrics given in the class, which also includes the following criteria:
There will be a midterm and final exam. Exams questions will be cumulative, taken from reading assignments, programming assignments, and class participation. Exams may test your understanding, comprehension, application, and evaluation of the material presented in this class.
Class participation/effort is important because we can all learn from each other. Your participation points can make a difference in the final grade. Participation means:
Review the CCIS Policies on the Regis University website.
NOTE TO LEARNERS: On occasion, the course facilitator may, at his or her discretion, alter the Learning Activities shown in this Syllabus. The alteration of Learning Activities may not, in any way, change the Learner Outcomes or the grading scale for this course as contained in this syllabus. Examples of circumstances that could justify alterations in Learning Activities could include number of learners in the course; compelling current events; special facilitator experience or expertise; or unanticipated disruptions to class session schedule.