NVCC College-Wide Course Content Summary
CSC 206 - Assembly Language (3 CR.)
COURSE
DESCRIPTION:
Examines assembly
language programming. Includes the use of macros,
linkers, loaders, assemblers and interfacing assembly language with
hardware
components. Lecture 3 hours per week.
Entry-Level
Competencies
Prerequisite is CSC 202, Computer
Science II.
General
Course Purpose
The extent to which each topic is
discussed and the ordering of topics
depends on facilities available. Enough assembly language details
should
be covered and programming projects assigned so that the student gains
experience in programming in assembly language for a specific computer.
However, concepts and techniques that apply for a broad range of
computers
should be emphasized.
Course
Objectives
Upon completion of this course, the
student will be able to:
-
Convert text into ASCII and vice versa.
-
Represent signed decimal integers in binary, two’s complement notation,
and vice versa.
-
Write binary numbers in hexadecimal notation, and vice versa.
-
State why and how a symbol table is used in the assembly process.
-
Write a simple macro.
-
Explain the purpose of a macro and how a macro is expanded in the
assembly
process.
-
State the purpose of a linker and a loader, the use of libraries, as
well
as the reasons for and the implementation by the linker of relocatable
object code.
-
Write, assemble, link, debug, and run an assembly language program that
uses the following: different addressing modes, arithmetic operations,
logical operations, iteration, selection, subroutines and parameter
passing,
character string operations, arrays, and system calls
-
State the mechanism of interrupt-driven I/O and the use of I/O ports.
-
Write an assembly language subroutine that requires parameters and call
it from a high-level language.
Major
Topics to be Included
-
Introduction and Review
-
Data representation
-
Numbers
-
Text
-
Computer Organization
-
Virtual Machine concept
-
Specifics of Machine Used in the Course
-
Assembly Language Fundamentals
-
Addressing
-
Register
-
Immediate
-
Memory/Direct
-
Indirect
-
Indexed
-
Absolute vs. Relative
-
Operations
-
Arithmetic
-
Logical
-
Data Transfer
-
Programming
-
Control Structures
-
Flags
-
Selection/Branching
-
Iteration
-
Subroutines
-
Calling Methods
-
Parameters and Passing Methods
-
Recursive Subroutines
-
Character String Operations
-
Data Structure Implementation
-
Array
-
Record/Structure
-
Pointer
-
Set
-
Input/Output
-
Memory Mapped
-
Direct Memory Access
-
System Calls
-
The Assembly Process
-
Directives
-
Symbol Tables
-
Linkers and Loaders
-
Object Module
-
Libraries
-
Relocation
-
Macros
-
Definition, Call and Expansion
-
With Parameters
-
Conditional
-
Implementation
-
Interface of Assembly Language with Hardware
-
Interrupts
-
Ports
-
High-Level Language Interface
-
Stack Frame
-
Parameters
-
Linking
-
Other Topics (optional)
-
Other Assembly Languages
-
Single Register (Accumulator) Systems
-
General Register Systems
-
Stack Machines
-
RISC versus CISC
-
Operating System Interface
-
Console Programming
-
Graphical Programming
-
Device Drivers
-
Interrupt and Exception Handling
-
Advance Memory Management
-
Virtual Memory
-
Multitasking
-
Instruction Encoding
Suggested
Time Allocation per Topic
In order to standardize
the core topics of CSC 206 so that a course
taught at one campus is equivalent to the same course taught at another
campus, the following student-contact-hours per topic are recommended.
There are normally 48 student-contact-hours per semester for a
three-unit
course. The last category, Other/Enhance, leaves
ample time
for an instructor to tailor the course to special needs or resources.
| Ref |
Topic |
Hours |
Percent |
| I |
Introduction / Review |
3 |
6 |
| II |
Assembly Language
Fundamentals |
-- |
-- |
| A |
Addressing |
3 |
6 |
| B |
Operations |
3 |
6 |
| III |
Programming |
-- |
-- |
| A |
Control Structures |
2 |
4 |
| B |
Subroutines |
3 |
6 |
| C |
Character String Operations |
3 |
6 |
| D |
Data Structure
Implementation |
2 |
4 |
| E |
Input/Output |
3 |
6 |
| F |
System Calls |
2 |
4 |
| IV |
Assembly Process |
-- |
-- |
| A |
Directives |
2 |
4 |
| B |
Symbol Tables |
2 |
4 |
| C |
Linkers and Loaders |
2 |
4 |
| D |
Macros |
2 |
4 |
| V |
Interface of Assembly Language
with Hardware |
2 |
4 |
| VI |
High-Level Language
Interface |
2 |
4 |
| VII |
Other optional
content or enhance
the above |
8 |
19 |
| |
Exams and Quizzes |
4 |
9 |
| |
Total |
48 |
100 |
Revised: October 2003; Inquiries to mailto:tseaman@nvcc.edu