| 9a. Catalog Description: |
| A hardware-oriented programming course dealing with programming a computer at the assembler language level. Emphasis will be on the assembly language of computers. |
| 9b. Other Catalog information: |
| None |
| |
| 10. Student Performance Objectives: |
As a result of successful completion of this course, a student will be able to:
1. Analyze a problem statement and design a solution for that problem. 2. Construct assembler code to implement the solution of the problem. 3. Debug and test the coded solution for syntax and logic errors. 4. Comprehend the factors involved with programming at a hardware level. |
| |
| 11. Methods of Evaluating Student Achievement: |
1. Written examinations which require the student to demonstrate knowledge of language syntax and methods of problem-solving using assembler language programming. 2. Lab assignments requiring the student to demonstrate proficiency in the use of assembler language. 3. Class discussions.
|
| |
| 12. Student Assignments (Homework): |
| |
| a. Required Reading Assignments: |
| Approximately 30-40 pages/week from required textbook |
| |
| b. Required Writing Assignments: |
| The analysis, design, and construction of assembly programs with supporting documentation |
| |
| c. Other (Terms projects, research papers, portfolios, etc.) |
| Assigned laboratory projects |
| |
| 13. Course Content Outline: |
Students will be required to critically analyze, evaluate, and utilize the following concepts, characteristics, and techniques.
I. Introduction to the assembly language
II. General Coding Information A. Conventions B. Syntax and structure C. Terms and expressions
III. Numbering systems A. Binary B. Hexadecimal and/or octal C. Signed and unsigned integers D. Carry and overflow concepts
IV. Computer Hardware A. Random access memory B. Central processing unit C. Registers
V. The Assembler process A. Object code generation and machine language B. Defining and addressing memory locations C. Moving data around in memory
VI. Simple mathematical operations A. Two's complement addition B. Assembler mnemonic supporting basic math operations
VII. Comparison operations and branching in Assembly A. Comparisons and two's complement addition B. Mnemonics
VIII. Arrays and bit manipulation A. String operations within assembly B. Arrays and indices C. Bit manipulation including shift, negation, and rotate
IX. Using the stack A. Placing memory locations on and removing them from the stack B. Using procedures within programs C. Using the stack to pass parameters to procedures D. Recursive logic and the stack
X. Input and output using the keyboard and monitor A. Interrupts and the supporting functions B. Keyboard buffer and controlling it C. String operations and conversion of ASCII to binary
XI. Advanced addressing concepts and data structures
XII. File operations A. Interrupts in support of disk operations B. Creating, reading, and writing files C. Locating records by sequence and random access
XIII. Advanced monitor operations A. Addressing specific locations on the monitor B. Monitor random access memory locations C. The concept of video pages D. Using video pages for speed and graphics
XIV. Advanced interrupts and terminate and stay resident routines A. Design and development considerations unique to TSRs B. Advanced interrupts for determining hardware configurations C. Working with external devices XV. Binary coded decimal A. Storage format of BCD B. Math requirements when using BCD C. Adjustment for ASCII notation when manipulating BCD locations |
| |
| 14a. All textbooks, resources and other materials used in this course are: |
| College level
|
| |
| 14b. EXAMPLE texts, reading and resources:
|
Abel. Programming Assembler Language. Prentice Hall, 1989 |
Stern, Sager, & Stern. Assembler Language Programming. Wiley, 1986 |
Quails. Mainframe Assembler Programming. Wiley, 1998 |