course outline - Modesto Junior College

advertisement
AA/AS Degree
X
Date Originally Submitted:
MODESTO JUNIOR COLLEGE
Non-Degree
Date Updated:
COURSE OUTLINE
2/22/2000
Noncredit
I.
DIVISION:
Business, Behavioral & Social Sciences
PREFIX/NO.: CMPSC 241
DIV./DEPT. NO:
COURSE TITLE: Assembly Language Programming
Formerly listed as:
Hours/Week:
41/2000
Date Changed:
Lecture:
3
Lab:
2
Other:
% Load:
.182
% Load:
.121
% Load:
If catalog is to read lecture/lab check here
Other (explain):
II.
ALSO OFFERED AS:
Div:
III.
Div:
COURSE INFORMATION:
No. Weeks:
Offered Only:
IV.
Title:
Prefix/No.:
Title:
18
TOP:
3
SAM:
.303
CAN:
Units:
Tot % Load:
Prefix/No.:
Spring
0701.00
State Class:
B
I
Method of Instruction:
Wk/Ex:
CSCI 10
30
In-Service:
Apprentice:
Summer
Fall
Eve
Not offered every semester:
PREREQUISITE(S)/COREQUISITE(S)/RECOMMENDED FOR SUCCESS:
Prerequisite (P)
x
Corequisite: (C)
Recommended for success (R)
(Please check all that apply and list below. Also attach appropriate documentation forms)
(P) CMPSC 204, Introduction to Programming
V.
CATALOG DESCRIPTION:
Designed for Computer Science transfer majors, but open to all students. Introduction to microcomputer hardware
architecture and assembly language programming. A microprocessor instruction set will be examined in detail. Memory
addressing modes, logic and control, data representations and manipulation, table processing, and device I/O control
processes will be examined. Macros, program modules, and interrupts will be studied. Extensive hands-on computer
projects implementing course objectives will be assigned.
VI.
FIELD TRIPS REQUIRED?
VII.
GRADING:
VIII.
REPEAT PROCEDURES:
Yes
A-F Only
No
CR/NC Only
Credit:
Maybe
x
CR/NC Option
No
x
Yes
Maximum Completions:
Non-Credit: No
x
Yes
Maximum Completions:
*
IX.
EXPLAIN FEE REQUIRED:
Materials fee required for files, diskettes,
documentation, and laboratory supplies.
Rev: 8/98
x
Non-Grades
Maximum Units:
*
2
CMPSC 241 – Assembly Language Programming
X.
PREREQUISITE SKILLS
Before entering the course, the student will be able to:
A. Discuss the uses of computers and their effect on society.
B. Describe the functional hardware components of a computer system.
C. Describe the concepts and functions of a computer operating system and application software.
D. Demonstrate the use of the Windows operating system to format storage, create folders, launch applications, navigate
through multiple windows, and access menus and toolbars to accomplish specified tasks.
E. Perform simple problem analysis, and design solution algorithms.
F.
Demonstrate the implementation of sequence, selection, and iterative control processes using a high-level programming
language such as BASIC or C++.
G. Discuss and apply the principles of top-down problem decomposition.
XI.
OBJECTIVES (Expected outcomes for students)
Upon successful completion of the course, the student will be able to:
A. Demonstrate conversions between and arithmetic operations on various number system representations.
B. Describe the hardware architecture and component functions for a modern microprocessor and systems board.
C. Describe and demonstrate usage of various memory addressing modes.
D. Explain the purpose of editors, assemblers, linkers, loaders, and operating systems runtime requirements.
E. Compare and contrast assemblers, compilers, and interpreters.
F.
Discuss memory and program segmentation.
G. Describe and utilize a processor instruction set to construct assembly language programs.
H. Demonstrate program logic and contol structures within assembly language programs.
XII.
I.
Demonstrate basic and advanced data manipulation and I/O processes within assembly language programs.
J.
Implement advanced assembly language processes through MACROS, program modules, and program interrupts.
CONTENT
A. Introduction to PC Hardware
1. Bits and Bytes
2. Binary, Decimal, Octal, and Hexadecimal Number Systems
3. Character Code Representations
4. The Central Processing Unit (CPU)
5. Internal Memory and Memory Maps
6. Segments and Addressing
7. Hardware Registers
Rev: 8/98
3
CMPSC 241 – Assembly Language Programming
B. PC Software Requirements
1. Operating System Characteristics
2. The Boot Process and The System Program Loader
3. DOS-BIOS Interface
4. The Stack, Program Addressing, Memory and Register References
C. Assembly Language Requirements
1. Editors, Assemblers, and Linkers
2. Assemblers versus Interpreters or Compilers
3. Assembly Language Syntax
4. Statements and Definitions
5. Data and Segment Directives
D. Assembling, Linking, and Executing
1. Assembly Language Source Code and .LST Listings
2. Simple Segment Directives versus Conventional Segment Directives
3. Two-Pass Assembler
4. Error Diagnostics and Debuggers
5. Linking Object Code and Program Execution
6. Cross-Reference Listings
E. Processor Instructions and Addressing
1. The CPU Instruction Set
2. Operators and Operands
3. Alignment of Addresses
4. Program Segments and Near and Far Addresses
5. The Segment Override Prefix
F.
Program Logic and Control
1. The Flags Register
2. Instruction Labels and Short, Near and Far Addresses
3. Unconditional and Conditonal Jumps, Jump Tables, and Loop Control
4. Data Comparison, Boolean Operations, Shifting and Rotating Bits
5. Procedure Calls
G. Screen and Keyboard Processing
1. Cursor Control and Setting Screen Attributes
2. DOS and BIOS Interrupts, Controlling Screen and Keyboard I/O and Display Modes
3. Video Adapters, Buffers, and Pages
4. Standard File Handles for Screen Display and Keyboard Input
CMPSC 241 – Assembly Language Programming
4
H. Data Manipulation
I.
J.
XIII.
1.
String Operations
2.
Processing Binary Data, Unsigned and Signed Arithmetic Processes
3.
Processing ASCII and BCD Data
4.
Table Processing
External I/O Processing
1.
Disk Storage Organization
2.
Creating and Accessing External Files
3.
DOS Interrupt Operations for Supporting Disks and Files
4.
BIOS Interrupt Disk Operations
5.
Printing and Other I/O Processes
Advanced Programming
1.
Writing MACROS
2.
Subprograms and Separately Assembled Program Segments
3.
EXTRN and PUBLIC Attributes
4.
Common Data in Subprograms
5.
Passing Parameters
6.
Intrasegment and Intersegment Calls
7.
Linking External Libraries
8.
Program Interrupts
TEACHING METHODS
A.
B.
Methods to achieve course objectives:
1.
Formal lectures by a certified instructor
2.
Assigned reading and discussion of required text
3.
Assigned reading of supplemental reference materials
4.
Implementation of computer programming laboratory projects
Methods used in achieving learner independence and critical thinking:
Student will be required to apply standard systems analysis problem-solving methodology to all programming
projects. This methodology is described by the five phases of the program development cycle as follows:
Phase 1 – Written problem definition and program specifications
Phase 2 – Formal solution algorithm design using flowcharts, structure charts, or other standard algorithm
presentation techniques
Phase 3 – Program code using valid syntax and constructs
Phase 4 – Implementation and critical testing and analysis of program results
Phase 5 – Written documentation, both internal and external, for the solution
CMPSC 241 – Assembly Language Programming
5
XIV.
TEXTBOOKS (Typical)
IBM Assembly Language Programming, Peter Abel , Prentice Hall, ISBN 0-7637-02929-7
XV.
SPECIAL STUDENT MATERIALS (i.e., protective eyewear, aprons, etc.)
XVI.
METHODS OF EVALUATING STUDENT PROGRESS
A. completeness and clarity of program documentation
B. Accuracy of problem definition and implementation
C. Written unit evaluations and/or midterm examination
D. Written final exam
Download