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: PF1prob-solve PF2 control PF4recursion PF5 ADTs 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, decoders) 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 ADTs 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 techniques o. program design, implementation (modularization), testing, documentation p. problem solving techniques q. written and oral communication skills w.r.t. expressing themselves precisely 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 calculation 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 e. RAM, ROM, EPROM f. disk architecture/access time (seek time, rotational latency, transfer time)