2 Syllabus
CIS250 / 3 cr. hrs./3 periods (3 lec.)
Prerequisite(s): CIS 131. Recommended: Consult instructor for alternative prerequisite(s).
Beginning assembly language programming.
Includes number systems, machine organization and different addressing
methods. Also includes array processing, indexing, sorting, stack
parameter passing, internal and external procedures, interfacing to
C function, status bits, logical and bit-level operations,
protected mode instructions, and macros.
- Define various Machine Architecture features.
- Design, write, and debug assembly programs.
- Use various addressing methods.
- Illustrate understanding of internal and external procedures.
- Convert numbers between different bases.
- Evaluate math and logical operations using binary and hexadecimal number systems.
- Plan solutions using array processing, indexing, and sorting.
- Illustrate how the stack is affected by various statements and
parameter passing.
- Demonstrate I/O usage through provided function or system calls.
- Demonstrate proficiency in above concepts through code.
- Binary, Octal, Decimal, and Hexadecimal number systems
- Machine Architecture
- RISC/CISC overview
- User model/supervisor model overview
- Execution (fetch/execute cycle)
- Memory & Memory management
- Instruction pipelining, cache memory
- Registers
- Status and control registers
- Addressing Modes
- Instructions
- Instruction coding
- Processor modes, user & privileged
- Defined, Illegal, Reserved
- Arithmetic
- Logical, Shift, Rotate
- Comparison
- Conditional and unconditional jumps
- Subroutine calls and returns
- Floating point
- Input/Output (I/O)
- Other instructions as appropriate
- I/O devices
- Boot process
- Program design
- The Assembler
- Program syntax
- Source creation using a text editor
- Translation
- Linking
- Pseudo ops
- Macro definition and use.
- Storage allocation, static and dynamic
- The stack
- Parameter Passing on the Stack
- Calling sequences
- Internal and external procedures
- "C" language calling sequence
- Array Processing, Indexing
- Sorting
- Program debugging and testing
- Optional: performance issues
- Optional: program profiling
- Optional: programmer productivity issues
This class is expected to be taught on an Intel Pentium compatible
platform on most cases. If a class is taught on a different platform
various modifications to the objectives and outline might be necessary.
%
% Copyright Louis Taber, PCC September 2004
- Required:
Please note: ALL of the required books are available on-line for free.
You are welcome to use the on-line material instead of printed copies.
You can use these on-line resources during tests and exams as well.
Instructor: Louis Taber, louis.taber.at.pima at gmail dot com (520) 206-6850
My web site in California
The Pima Community College web site