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.