Week |
Lesson |
Chapter |
Topics |
1 |
1 |
1 |
Welcome, Virtual Machine Concept, Data Representation,
Convert decimal to binary, two's complement, Boolean Operations |
1 | 2 |
2 |
IA-32 Processor General Concepts, Multitasking, Architecture, Memory Management:
Real-address mode, Protected mode, Microcomputer |
2 | 1 |
3 |
Basic Elements, Example: Adding and Subtracting Integers, Flags Register,
Assemble-Link-Execute Cycle |
2 | 2 |
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 |
3 | 2 |
4 |
Indirect Addressing: Indirect Operands, Indexed Operands, Pointers; JMP and
LOOP; SumArray.asm, CopyStr.asm |
4 | 1 |
5 |
Calling procedures in Irvine32.Lib; Runtime Stack, PUSH,POP,
PUSHFD,POPFD,PUSHAD,POPAD
|
4 | 2 |
5 |
Using Procedures, Example: SumOf, CALL,RET, USES, Example: Summation, Random
Integer, Performance Timing |
5 | 1 |
1 - 5 |
Chapter Review and Homework analysis |
5 | 2 |
6 |
AND,OR,XOR,NOT instructions, Parity flag, TEST,CMP Instructions, Conditional
Jumps; Sequential Search
|
6 | 1 |
1 - 5 |
Mid Term 1 |
6 | 2 |
6 |
String Encryption, Bit Test, LOOPZ/LOOPNZ; Ex:Loopnz.asm; Conditional Structures, short-circuit, WHILE Loops; Table-Driven Selection
|
7 | 1 |
6, 7 |
Finite-State Machines; Decision Directives; Shift and Rotate: SHL/SHR, SAL/SAR, ROL/ROR, RCL/RCR, SHLD/SHRD
|
7 | 2 |
7 |
Applications: Multiple Shifting, Binary Multiplication, Displaying Binary, DOS
File Date; MUL/IMUL, Mulplication benchmarking DIV, CBW, CWD, CDQ, IDIV,
Arithmetic Expressions |
8 | 1 |
7 |
Extended: ADC, SBB, ExtAdd.asm; Unpacked BCD: AAA, ASCII_add.asm, AAS, AAM,
AAD; Packed BCD: DAA, AddPacked.asm, DAS |
8 | 2 |
8 |
Stack Frames: Parameters, Passing by Value/Reference, RET, C/Std Call, Local
Variables, ENTER/LEAVE; Recursion: Csum.asm |
9 | 1 |
8 |
Factorial; Memory Models; INVOKE, ADDR, PROC, PROTO, Swap.asm; Multi-modules;
Java/JVM and .Net/CLR |
9 | 2 |
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 |
10 | 1 |
9 |
Two-Dimensional Arrays, RowSum; Bubble Sort, Binary Search |
10 | 2 |
6 - 9 |
Chapter Review and Homework analysis |
11 | 1 |
6 - 9 |
Mid Term 2
|
11 | 2 |
10 |
Structures: Definition/Variables, Windows structures, structure array,
Alignment, Nested, Union; Macros: Defining/Invoking, Additional Features;
Examples, Wrappers; Conditional-Assembly Directives; |
12 | 1 |
10 |
Checking Missing Arguments, Default initialization; IF, ELSE, and ENDIF; Special
Operators, Multiple data/code segments, Local symbols in Macros, Macro Functions |
12 | 2 |
10, 11 |
Macro repetition: WHILE, REPEAT, FOR, FORC, Linked List. Win32 Console
Programming: API and SDK, Windows Data Types |
13 | 1 |
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 |
13 | 2 |
11 |
Time and Date Functions; File time; GUI Widows App, MessageBox, WinMian, message
loop;
|
14 | 1 |
11, 12 |
Dynamic Memory Allocation, Heap, Heaptest1/2.asm; x86 Memory Management.
Floating-Point Binary Representation and conversion, IEEE Encodings |
14 | 2 |
12 |
Floating-Point Unit, FPU Register Stack, Rounding, Exceptions; Arithmetic and
Comparing, Intel Instruction Encoding |
15 | 1 |
13 |
Link ASM and HLL Programs, Calling Convention, Memory MODEL, Inline Assembly
usage, Encode/ Encode inline, Call assembly procedures form C++ |
15 | 2 |
13 |
AsmFindArray, Call C++ Functions from Assembly; Multiplication Table, Calling C
Library Functions, Optimization |
16 | 1 |
- |
BIOS and interrupt, Boot loader, emulators; SIMD, instruction-level parallelism: MMX, SSE, and XMM |
16 | 2 |
10 - 13 |
Final
|
Lectures would be changed or adjusted based on the current semester conditions |