Assembly Programming (ASM)
Aperçu des sections
-
Welcome to "IST-4-ASM" where you will learn to program in assembly. This course has no theoretical prerequisites and relies fully on hands-on learning. So please bring your laptop with you (and install python3 if it is not done already).
For all questions and demands, please e-mail us both: lionel.morel@insa-lyon.fr + guillaume.salagnac@insa-lyon.fr. Thanks !
Lecture notes / worksheets
- Information Coding
- topics: binary numbers, conversion to/from decimal, hexadecimal notation, ASCII encoding, RGB colors
- files: rgb.py
- Binary Arithmetics
- topics: binary addition and subtraction, two's complement representation, sign extension, binary multiplication
- topics: binary addition and subtraction, two's complement representation, sign extension, binary multiplication
- The Von Neumann Architecture
- topics: CPU, memory, registers, machine code vs assembly, immediate operands, step-by-step execution
- files: scat.zip (assembler and simulator), isa-card.pdf (Instruction set reference sheet)
- Control Flow
-
topics: control structures (loops, alternatives), pseudo-instructions, mandatory vs conditional jumps, breakpoints
- Memory Load/Store Instructions
-
topics: addressing mode, base+offset register-indirect addressing, literal data with .word directive
- Memory-Mapped Input/Output
-
topics: address space, main memory vs peripherals, framebuffer
- Subroutines
-
topics: calling and returning from a procedure, Link Register, input and output parameters
- Execution Stack
-
topics: concept of memory stack, push/pop instructions, stack pointer, function prologue/epilogue
- Recursion
- topics: recursive functions, calling conventions, parameter passing
Past Exams
- Fall 2022: exam - solution
- Fall 2022: retake exam - solution
- Fall 2023: exam - solution
- Fall 2023: retake exam - solution
- Information Coding