Tentative Course Schedule - CSCI 241
Computer Organization and Assembly Language Programming

Week Lesson Chapter Topics
1 1 1 Welcome, Virtual Machine Concept, Data Representation, Convert decimal to binary, two's complement, Boolean Operations
12 2 IA-32 Processor General Concepts, Multitasking, Architecture, Memory Management: Real-address mode, Protected mode, Microcomputer
21 3 Basic Elements, Example: Adding and Subtracting Integers, Flags Register, Assemble-Link-Execute Cycle
22 4 Data Transfers, Addressing, and Arithmetic; MOV, Zero & Sign Extension, XCHG; INC, DEC, ADD, SUB, NEG
3 1 4 Flags Affected: Zero, Sign, Carry, Overflow; Data-Related Operators/Directives: OFFSET, ALIGN, PTR, TYPE, LENGTHOF, SIZEOF, LABEL
32 4 Indirect Addressing: Indirect Operands, Indexed Operands, Pointers; JMP and LOOP; SumArray.asm, CopyStr.asm
41 5 Calling procedures in Irvine32.Lib; Runtime Stack, PUSH,POP, PUSHFD,POPFD,PUSHAD,POPAD
42 5 Using Procedures, Example: SumOf, CALL,RET, USES, Example: Summation, Random Integer, Performance Timing
51 1 - 5 Chapter Review and Homework analysis
52 6 AND,OR,XOR,NOT instructions, Parity flag, TEST,CMP Instructions, Conditional Jumps; Sequential Search
61 1 - 5 Mid Term 1
62 6 String Encryption, Bit Test, LOOPZ/LOOPNZ; Ex:Loopnz.asm; Conditional Structures, short-circuit, WHILE Loops; Table-Driven Selection
71 6, 7 Finite-State Machines; Decision Directives; Shift and Rotate: SHL/SHR, SAL/SAR, ROL/ROR, RCL/RCR, SHLD/SHRD
72 7 Applications: Multiple Shifting, Binary Multiplication, Displaying Binary, DOS File Date; MUL/IMUL, Mulplication benchmarking DIV, CBW, CWD, CDQ, IDIV, Arithmetic Expressions
81 7 Extended: ADC, SBB, ExtAdd.asm; Unpacked BCD: AAA, ASCII_add.asm, AAS, AAM, AAD; Packed BCD: DAA, AddPacked.asm, DAS
82 8 Stack Frames: Parameters, Passing by Value/Reference, RET, C/Std Call, Local Variables, ENTER/LEAVE; Recursion: Csum.asm
91 8 Factorial; Memory Models; INVOKE, ADDR, PROC, PROTO, Swap.asm; Multi-modules; Java/JVM and .Net/CLR
92 9 String Primitive: MOVSB/W/D, CMPSB/W/D, SCASB/W/D, STOSB/W/D, LODSB/W/D; Str_compare, Str_length, Str_copy, Str_trim, Str_ucase
101 9 Two-Dimensional Arrays, RowSum; Bubble Sort, Binary Search
102 6 - 9 Chapter Review and Homework analysis
111 6 - 9 Mid Term 2
112 10 Structures: Definition/Variables, Windows structures, structure array, Alignment, Nested, Union; Macros: Defining/Invoking, Additional Features; Examples, Wrappers; Conditional-Assembly Directives;
121 10 Checking Missing Arguments, Default initialization; IF, ELSE, and ENDIF; Special Operators, Multiple data/code segments, Local symbols in Macros, Macro Functions
122 10, 11 Macro repetition: WHILE, REPEAT, FOR, FORC, Linked List. Win32 Console Programming: API and SDK, Windows Data Types
131 11 Standard Console Handles Console Input, ReadKey; File I/O, AppendFile.asm, Demo: ErrorHandler; Console window and screen buffer, Control Cursor, Text Color and attribute
132 11 Time and Date Functions; File time; GUI Widows App, MessageBox, WinMian, message loop;
141 11, 12 Dynamic Memory Allocation, Heap, Heaptest1/2.asm; x86 Memory Management. Floating-Point Binary Representation and conversion, IEEE Encodings
142 12 Floating-Point Unit, FPU Register Stack, Rounding, Exceptions; Arithmetic and Comparing, Intel Instruction Encoding
151 13 Link ASM and HLL Programs, Calling Convention, Memory MODEL, Inline Assembly usage, Encode/ Encode inline, Call assembly procedures form C++
152 13 AsmFindArray, Call C++ Functions from Assembly; Multiplication Table, Calling C Library Functions, Optimization
161 - BIOS and interrupt, Boot loader, emulators; SIMD, instruction-level parallelism: MMX, SSE, and XMM
162 10 - 13 Final
Lectures would be changed or adjusted based on the current semester conditions