ساختار و زبان ماشین (ترم دوم 00-99)
Introduction to Machine Language, Assembly Language and Applications
x86 Architecture, Processor History, Registers, 16bit, 32bit and 64 bit architectures and basic commands
Object files, Libraries, The compiler and the Linker
Compiling C to assembly
Linking assembly and C
Writing standalone assembly programs under linux
Linking assembly with C
Binary, decimal, hex and octal numbers, conversion between them
Signed integers, two's complement
Carry & Overflow, the FLAGS Register,
Extending bit size
Unconditional Jump, conditional jumps, comparisons
Signed and unsigned Comparisons, Loop instructions
Working with memory, implementing global variables
Little endian vs Big endian systems
Multiplication and Division
CPU clock & frequency, clock cycles, and instruction timing
Bit operations
Shift and rotate operations,
Bitwise AND, OR, NOT, XOR
the test command
Introduction to subprograms/functions
Indirect addressing, indirect jump
The stack, the stack segment, the stack pointer register (ESP), push and pop commands
Argument passing,
call and ret commands
indirect call, implementing pointers to functions
Calling conventions, calling conventions in C
Implementing local variables on stack
The base register (EBP)
Modular Programming in C and assembly
Interfacing assembly with C
Calling assembly routines from C
Calling C routines in assembly
the AT&T syntax
Inline assembly
Recursion
The C Preprocessor and Macros
Netwide assembler Macros and Preprocessor
Calling software interrupts
System Calls
Implementing arrays
General indirect addressing
Load Effective Address
Implementing 2D, 3D and N-D arrays, row-major vs column-major implementation
Segmentation
string instructions
Introduction to Interrupts
Software vs Hardware interrupts
Writing interrupt routines
Introduction to floating point
The coprocessor, 8087 register stack, floating point instructions
Introduction to reverse engineering
x86 instruction format
self modifying code
disassembling
debugging and reassembling
C compiler optimization
Short review of other topics
IN/OUT comprogrammingmands
Real-mode
SIMD; MMX, SSE, AVX and FMA Instruction sets