Assembly Language Programming
This course uses the studentís knowledge of C to explore the world of IA32/x86 assembly language programming in a Linux environment. Students will examine the internal representation of data and bit-level operations. Students will examine assembly language generated by the gcc compiler to implement all common C constructs such as if-statements, loops, array and structure access, and function calls. Students will also examine basic computer hardware components and the concept of a memory hierarchy. This course uses assembly language as a tool to give students a better understanding and appreciation of the low-level workings of their code and computer. X86-64 instructions are also examined in parallel to IA32.
- Demonstrate an understanding of data representation
- Demonstrate an understanding of basic computer architecture including CPU hardware and the memory hierarchy
- Read and write IA32 x86 assembly language programs
- Demonstrate the ability to translate between C source code and the resulting assembly language code and vice versa.
- Review of C programming environment
- Memory Addressing
- Bit level and logical operators in C
- Integer representation and arithmetic
- CPU registers
- Data movement instructions
- Arithmetic and logical operator instructions
- Instructions for control structures
- Stack frame structure and stack discipline
- Procedure calls
- Array element access
- Structure Access and data alignment
- Basic CPU hardware
Students must have completed our C Programming 3 week Bootcamp or have equivalent training in C, or have at least one year of C programming experience. Students must have program development experience in the Linux environment.
E-mail Heith Hart or call (443) 692-6599 if you have any questions about this course or if you would like to be added to the interest or wait list.