Course Outcomes: CS 1401

Course Outcomes: CS 3432
Department and Course Number: CS3432
Course Title: Assembler Language Programming (Computer Architecture I)
Course Coordinator: Steve Roach
Course Description: Basic machine organization, fetch/decode/execute process,
symbolic coding of instructions and data, including instruction types and addressing
modes, implementation of data and control structures, subroutines and linkage,
input/output handling at the assembly level including interrupt an exception handling, and
the compile and assembly processes.
Goals: Establish a foundational knowledge of machine organization via assembler
language, which is necessary for CS3320, Computer Architecture.
CC2001 core hours:
PF2 control
SE3 Software design and implementation (6)
SE4 Software validation (6)
AR2 data rep
AR3 Assm lang
Course Contact Hours: 60
Knowledge and abilities required before students enter the course
Knowledge and Comprehension
Students have been introduced to:
a. black box model of computer architecture (CPU/Memory)
b. basic building blocks (gates, flip-flops, registers, counters, multiplexors,
c. combinational logic, clocks, memory elements
d. structure of simple adder, simple ALU
Application and Analysis
Students are able to apply:
a. able to use the campus computing environment
b. can evaluate logic expressions
c. differentiate between real numbers and integers
d. differentiate between mathematical relations and functions
Synthesis and Evaluation
Students are able to:
a. know about and can use arrays, stacks, queues, linked lists, and basic
b. know about and can use pointers in a high-level language
c. apply a high-level language to solve a problem
Learning Outcomes
1. Knowledge and Comprehension
Upon successful completion of this course, students will be able to:
a. are able to apply the following in new situations: knowledge of
b. numeric data representation and number bases (powers of 2,
binary, decimal, and hexadecimal represenation)
c. representation of nonnumeric data
d. conversion from one representation to another
e. least- and most- significant bits
f. signed and unsigned numbers, sign extension, overflow detection,
underflow detection, one’s complement, two’s complement, and
sign magnitude representation
g. basic machine organization, control unit and function
h. assembly/machine language programming--assembly language,
machine language (assembly/disassembly)--pseudo-assembler
templates for high-level programming constructs such as if-thenelse, while loop, repeat-until loop, do loop, case statement
i. two-pass assembler, backpatching
j. instruction set architecture, i.e., opcodes, operands, instruction
formats and types (data manipulation, control, I/O)
k. condition code register and its function
l. addressing modes: register, base or displacement, immediate, PCrelative, pseudodirect
m. data, text, and stack segments
n. subroutines, caller, callee, return address, parameter passing
o. program design, implementation (modularization), testing,
p. problem solving techniques
q. written and oral communication skills w.r.t. expressing themselves
r. simulation
2. Application and Analysis
Upon successful completion of this course, students will be able to:
a. are able to apply:
b. functions of assembler, linker, and loader and relocatable code,
assembler directives
c. fetch/decode/execute cycle, program counter, “machine state,
instruction execution time, i.e., why some instructions take longer
to execute than others (w.r.t. memory access) ”, effective address
d. finite state machines
e. use of registers and memory (stored program concept), addressing
bytes and words in memory
f. interrupt handling
g. knowledge of and manipulation of stack, stack pointer, frame,
frame pointer
h. knowledge of interrupt-driven vs. memory-mapped I/O
3. Synthesis and Evaluation
Upon successful completion of this course, students will be able to:
a. have been introduced to:
b. symbol table
c. functions of a compiler
d. fixed and floating-point numbers
f. disk architecture/access time (seek time, rotational latency, transfer