CST121 - Suffolk County Community College

advertisement

SUFFOLK COUNTY COMMUNITY COLLEGE

COLLEGE-WIDE COURSE SYLLABUS

CST131 (formerly CS17)

I. COURSE TITLE:

Computer Organization and Assembly Language Programming

II. CATALOG DESCRIPTION 2006-2008

Introduces machine-oriented programming PC Assembly Language designed to familiarize students with basic structure and language of machines. Topics include data representation, addressing techniques and macros, among others.

Several programming projects are assigned. Prerequisite: CST112.

III. STUDENT LEARNING OUTCOMES:

A.

Supply definitions for RAM, ROM, PROM, EPROM and Flash Memory and their uses within the IBM PC and other computers.

B.

To provide an understanding of the Binary and Hexadecimal number systems and how all operations performed in the computer are done in binary.

Use Binary and Hexadecimal number systems and convert to and from the

Decimal number system.

C.

Learn the purpose and use the internal registers of the Intel 8086 microprocessor: CS, SS, DS, ES, IP, AX (AH & AL), BX (BH & BL), CX

(CH & CL), DX (DH & DL), DI, SI, SP, BP, Flags Register, MAR (Memory

Address Register) and MDR (Memory Data Register).

D.

Understand a memory diagram that relates the CPU and its MAR & MDR and the Segment Registers as to the fetching and storing of data and instructions.

E.

Show how the computer’s CPU accesses memory using Decode Logic to select memory. Define a Memory Map for computer memory and how it relates to the IBM PC Architecture.

F.

Create the Source program for an Assembly Language Program using a standard Text Editor such as NotePad to generate a .ASM

(Assembler

Source) file, then Assemble it, using TASM or MASM to get .OBJ

and .LST

(Object and List) files, using a loading linker to take the object files to produce a .EXE

(executable) file and then executing the program.

G.

Use Intel 8086 instructions to move data to and from memory and on and off the stack.

H.

Do Integer arithmetic in 8086 Assembler language: Add, Subtract, Multiply and Divide.

I.

Implement Control Structures using Conditional and Unconditional Jumps.

J.

Implement Decision Structures for IF...THEN...ELSE logic using Compare and Conditional Jumps.

K.

Implement Loop Structures for WHILE..WEND and FOR...NEXT using the

Compare and Conditional Jumps.

L.

Create a Main Procedure and Subprocedures and understand the difference between Near and Far Procedures.

IV. Topics Outlines with Timeline:

WEEK TOPIC

1 Microcomputers and the Personal Computer

The Binary and Hexadecimal Number Systems: Conversion to/from Decimal

7

5

6

4

2 Positional Number Systems and a Typical 8-Bit Computer Architecture

A Memory diagram showing the CPU, typically four memory chips, the address decode chip, data and address lines, read/write and chip select lines

3 Intel 8088/8086 Register Set & Assembly Language Programming

Difference between the ALU in the EU (Execution Unit) and ADDER in the

BIU (Bus Interface Unit). General Registers (Arithmetic, Index and Pointers) ,

Segment Registers and their Offsets. How the CPU calculates the absolute memory address from the Segment Registers and their Offsets.

Lab: Writing, Assembling and Running an Exercise

Computer Representation of Binary Signed and Unsigned Data. Data

Definitions: DB and DW. Memory Addressing

Lab: Setting up to write a program

Data Transfer Instructions: MOV and XCHG. Example Program

Lab: Use of DEBUG

Integer Arithmetic, Flag Register Bits, Signed and Unsigned Data

Representation

ADD, SUB, INC, DEC, CMP, MUL, IMUL, DIV, IDIV, CWB, and CWD

Exam 1 – Binary, Hexadecimal, Two’s Complement, MOV, XCHG, Adder

Function

Integer Arithmetic and Programming Examples

8 Program Examples. Flags set by various instructions and how to determine what flags are affected/unaffected by the various instructions. Overflow

Detection. Additional Capacities

9 Control Structures – Conditional and Unconditional Jumps: which to use for signed and unsigned arithmetic. Concept of short and long jumps and how the

IP is modified.

Decision Structures - IF...THEN...ELSE Pseudocode and how to implement in

Assembly.

10 Loop Structures - WHILE...WEND and REPEAT...UNTIL – The use of LOOP,

LOOPE, LOOPZ, LOOPNE, LOOPNZ, JCXZ.

Nested Control Structures: Pseudocode and how to implement in Assembly

11 Exam 2 – Up through Arithmetic Instructions: Various data types (DB and

DW) and how they appear in the computer’s memory. Proper syntax and flags set by various instructions

Loop Structures - WHILE...WEND and FOR...NEXT: Pseudocode and how

to implement in Assembly Language.

12 Loop Structures - WHILE...WEND and REPEAT...UNTIL – The use of LOOP,

LOOPE, LOOPZ, LOOPNE, LOOPNZ, JCXZ.

13 Main Procedure and Subprocedures. NEAR and FAR Procedures.

Implementing NEAR Code Segments. Passing Arguments using the Stack and

USES pseudo-operation.

14 NEAR and FAR Procedures. Implementing FAR Code Segments: Separate assembly of Calling and Called Programs and additions to the Linking Loader instructions.

15 Review

16 Final Exam: Proper Instruction Syntax,

V. Evaluation of Student performance:

To be determined by the instructor.

VI. Programs that require this course:

Computer Science A.S. Degree – 203-1, Network Design and Administration –

392-1, Computer Information Systems – 392-2,

VII. Courses that require this course as a prerequisite:

CS18

IX. Supporting Information:

Download