Practical sessions and labs for Architecture course 2004
---------------------------------------------------------
1. Tirgul:
----------
- basic assembly instructions
- jump & loop instructions (for the assignment 0)
- little endian
- byte structure
- registers
- flags
2. Lab:
----------
- ASCII code
- labels definition
- two simple programs to do:
1. get string and convert upper case to lower case and vice versa.
2. get string and print it in hexadecimal.
- Producing a listing and using it (e.g. to determine machine code length)
3. Tirgul:
----------
- sections
- advanced instructions: shift, rotate, mul, jump, masking, branch
- work with memory
- work with strings
4. Lab:
----------
- stack
- combined program of C and assembly
- advanced usage of NASM
- program to do:
1. take C main simple file and assembly it.
Observe parameters pass in C, compare to material given in class.
Write a little program that uses C main, C function and assembly function:
C main calls to assembly function, assembly function calls to C functin etc.
5. Lab:
----------
- co-routines
* Basic scheme - implementation and testing:
initializing and exiting the co-routines mechanism
* Using the co-routine mechanism to develop a rudimentary
threads package - introduction (to be completed as
a homework exercise).
6. Lab:
----------
- NASM macros
- debugging (using gdb)
- disassembly
- basics of self-modifying code
7. Lab:
----------
- system calls
- file control blocks (working with files in assembly language)
8. Tirgul:
----------
- ELF files: introduction (using the elfread program)
* Structure of ELF fies
* The sections in ELF files and their structure
* Mapping of ELF sections to memory
9. Lab:
----------
- Modifying ELF files - introduction to linking and hacking.
* Basic hacking: changing program printouts by modifying ELF
executable file
* Hacking: breaking a password protected program
* Basic anti-hacking techniques
10. Lab:
--------
- Basic independent position code (IPC).
- Basic combination of object code programs (2 elf files)
- Introduction to homework exercise: self sufficiency of
combining program, using: IPC and system calls.
11. Lab:
-----------
- self modifying code - advanced
- profiling (?)
12. Tirgul:
-----------
- pipeline
13. Tirgul:
-----------
If we would cover all the material, it will be a tirgul hazara,
i.e. questions from previous exams, etc.