COSC 300 Syllabus of Record
I. Catalog Description
COSC 300 Assembly Language 3c-0l-3sh
Prerequisites: COSC 110
Examination of the
structure and languages of machines; representation of data, addressing
techniques, symbolic coding, assemblers, macros, etc.; problem solving using
assembly language.
II. Course Objectives
Upon successful
completion of this course, the student will be able to
A. Read, write, and debug programs written in
assembly language.
B. Describe how information is represented with
a computer.
C. Explain the uses of various machine
addressing modes and why they are used.
D. Write assembly language macros to simplify
the writing of large programs.
E. Describe how input and output at terminals
and from files is performed at the machine level.
F. Use system services in a program.
G. Explain the internal workings of the machine
on a procedure call and describe the structure of the
call frame.
H. Discuss the relationship of assembly
language and machine language and describe the linking
process.
I. Explain the basic architecture of a computer
with respect to storage of information and execution of
instructions.
III. Detailed Course Outline
A. Introduction to Assembly Language (1 hr)
1. Capabilities
2. Machine
dependence
3. Beginning
terminology
B. Machine Organization
(2 hrs)
1. Memory
organization
2. Bit and byte
numbering
3. CPU: registers
4.
Fetch-decode-execute cycle
5. Condition flags
C. Assembly Language Forms (1 hr)
1. Instructions
(op codes,
operand forms, simple addressing modes)
2. Directives
(symbols and
expressions)
D. Basic directives and instructions (1 hr)
1. Reserving and
initializing storage
2. Defining
symbols
3. Move, add,
increment and branch instructions
E. Assembling, linking and debugging (1 hr)
F. Number representation (1 hr)
1. Sign-magnitude
2. 1's complement
3. 2's complement
4. Numeric
conversions (decimal to hex and vice versa)
G. Integer arithmetic instructions (2 hrs)
H. Terminal input and output (1 hr)
I. Conditional branching (2
hrs)
1. Branch, compare
and test instructions
2. Condition flags
J. Simple character manipulation (1 hr)
K. Conversion: numeric strings <-> 2's
complement (2 hrs)
1. Horner's method
2. Type conversion instructions
3. Length conversion instructions
L. Loop Control
(1 hr)
M. Terminal escape sequences (1 hr)
N. System services (3 hrs)
O. Assembly process (3
hrs)
1. Pass #1
(Location
counter; symbol table)
2. Pass #2
(Generation
of object code; operand forms; addressing modes; expression forms and
evaluations)
P. Macros
(5 hrs)
1. Definitions
2. Invocations
3. Position and Keyword forms
4. Local labels
5. User friendliness
6. Conditional assembly
7. Macro libraries
Q. Procedures
(4 hrs)
1. Execution tasks
2. Internal subroutines
3. Psects and entries
4. CALLG and CALLS procedures
5. Call frame
6. Argument passing (by reference and by value)
R. File input and output (2 hrs)
S. Bit operations (2
hrs)
1. Masking
2. Shifting
3. Logical operations
4. Condition flags
T. Linking
(1 hr)
1. Unresolved references
2. Object module
3. Address and displacement adjustments
U. Advanced character manipulation (1 hr)
1. Searching
2. Formatting
numeric values
V. Floating point arithmetic (1 hr)
IV. Evaluation Methods
50% Examinations.
Two mid-term exams, each counting 16%; one final exam counting 18%. Examinations consist of short-answer, code
segment, and analysis questions.
40% Assignments.
Six to eight programming assignments worth varying numbers of points,
totaling 150-200 points. The assignments are directly related to the
objectives.
10% Quizzes.
Three or four announced quizzes on the lecture material.
Generally, assignments
are expected to be handed in on time and examinations are expected to be taken
on the designated date and time. Valid excuses, e.g. documented illness, are
required for any exceptions to be made.
Grading penalties for late assignments are rather severe: 20% for 1 day late, 40% for 2 days late, 70%
for 3 days late, 100% after that. Quizzes cannot be made up; they must be taken
when given. However, allowances can be made for valid excuses.