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: