Course Outline Computer Science 21

Course Outline Computer Science 21

ChabotCollegeFall 2002

Replaced Fall 2010

Course Outline Computer Science 21

COMPUTER ORGANIZATION AND ASSEMBLY LANGUAGE PROGRAMMING

Catalog Description:

21 – Computer Organization and Assembly Language Programming 4 units

Basics of machine architecture, machine language, assembly language, operating system and higher level language interface. Data representation, instruction representation and execution, addressing techniques and use of macros. Space and time efficiency issues. Input/output including number conversion and use of system interrupts. Interrupt processing and interrupt handlers. Procedures including parameter passing and linkage to higher level languages. Prerequisite: Computer Science 14 (completed with a grade of C or higher). 3 hours lecture, 3hours laboratory.
[Typical contact hours: lecture 52.5, laboratory 52.5]

Prerequisite Skills:

Before entering the course the student should be able to:

  1. follow the procedures used in the appropriate college computer laboratory to sign in and out, and to write, edit, compile, run and debug programs;
  2. demonstrate an elementary understanding of modern computational systems and their use;
  3. demonstrate an elementary understanding of what steps are involved in program development;
  4. use simple C++ data types in programs and understand how they are represented in the machine;
  5. form C++ expressions using selected operators, and understand the rules of precedence used in their evaluation;
  6. use the structured programming constructs: sequence, selection and iteration;
  7. perform elementary interactive input and output operations;
  8. code void and value-returning functions with value and reference parameters and use them in a program;
  9. define and use the structured C++ data types: array, string, struct in applications drawn from mathematics, the sciences, and other areas;
  10. use text files to record and retrieve information in elementary applications;
  11. produce well-documented, user-friendly programs of short to medium length.

Expected Outcome for Students:

Upon completion of this course the student should be able to:

  1. code, execute and debug assembly language programs using college laboratory facilities;
  2. demonstrate a basic understanding of computer architecture and operating system interface;
  3. demonstrate familiarity with the function of CPU registers;
  4. describe what is meant by RISC and CISC based instruction sets;
  5. describe basic machine addressing modes and terminology;
  6. describe how data are represented in the machine: integers, characters, strings, floating point numbers (in IEEE representation), arrays;
  7. use integer arithmetic instructions, including testing for overflow;

ChabotCollege Page 2

Course Outline for Computer Science 21

Computer Organization and Assembly Language Programming

Fall Semester 2002

Expected Outcome for Students: continued

  1. program selection and repetition constructs, macros and procedures in assembly language including parameter passing and linkage to both external assembly language modules and higher level language modules;
  2. program basic keyboard input and text screen output using operating system interrupts and library procedures;
  3. define the data structure stack and use the machine instructions involving stacks to code selected algorithms;
  4. define the term interrupt and be able to write a simple interrupt handler;
  5. describe how floating point arithmetic is performed using the co-processor and use machine co-processor instructions in a program.

Course Content:

  1. How to use software currently in use for the course to write working programs
  1. Use of Division laboratory facilities to edit, assemble and run assembly language programs
  2. Use of system symbolic debugger to debug assigned programs

2.Computer architecture

  1. Central processor registers
  2. Communication with memory
  3. Instruction format and execution cycle

3.Addressing techniques

  1. Absolute vs. relative addressing
  2. Indexed addressing
  3. Indirect addressing
  1. Machine and assembler representation of data
  1. Base arithmetic and base conversion algorithms
  2. Integers of byte and word size and larger
  3. Characters, character strings and arrays
  4. Floating point numbers in IEEE format

5.Assembly language programming fundamentals

  1. Assembly format including labels, operation codes, operands and remarks
  2. Assembly process and production/meaning of source, object, listing, map and executable files
  3. Pseudo-ops
  4. Machine format of instructions
  5. Use of the registers and moving data to/from memory
  6. Integer arithmetic and logical machine instructions
  7. Basic input from keyboard and output to screen of integers, characters and strings using system interrupts
  8. Branch, jump and loop instructions and use in repetition constructs
  9. Index register modified instructions and use with arrays
  10. Procedures which do not explicitly pass parameters

6.Advanced assembly language topics

  1. Procedures including parameter passing using the stack and stack/base pointer registers
  2. Writing macros
  3. Recognizing an interrupt?
  4. Writing an interrupt handler

ChabotCollege Page 3

Course Outline for Computer Science 21

Computer Organization and Assembly Language Programming

Fall Semester 2002

Course Content: continued

  1. Floating point arithmetic using the co-processor
  2. Advanced use of segments and segment registers
  3. How an assembler is written

7.Program development

  1. Assembly, link and execute cycle and how to automate it
  2. Program linkage with external library procedures and prewritten macros
  3. Program linkage with externally assembled assembly procedures
  4. Program linkage with higher-level languages

Methods of Presentation:

  1. Lecture, discussion and classroom demonstrations
  2. Student use of appropriate computer laboratory

Assignments and Methods of Evaluating Student Progress:

  1. Typical Assignments
  1. Modify the GETDEC procedure discussed in section 7.3 by adding error checking as stated in problem 8 on page 186.
  2. Modify your new GETDEC procedure to create a GETUDEC procedure.
  3. Assemble both new procedures in separate files. Write a separate test driver program (separate file) and test each procedure.
  1. Methods of Evaluating Student Progress
  1. Exams which may include quizzes, midterms and a required final examination.
  2. Writing and implementation of various and multiple assigned programs and other assignments which utilize all topics included in the course of study

Textbook(s) Typical:

Assembly Language for the IBM PC Family, William B. Jones, Scott/Jones Publishers, 2001

Special Student Materials:

Computer lab fee

Diskettes

Optional zip disk

August 29, 2001 Carol Conway and Maurice Ngo

CS 21 Outline Fall 2002