Fall 2014 SPO600 Assembly Language Presentation
Assignment
- Select one of the topics below by placing your name in the "Student" column (first come, first served).
- During week 3, research the topic and prepare a 3- to 5-minute presentation to teach the answer to the class.
- Be prepared to teach this presentation during week 4. You may want to draw whiteboard diagrams, use presentation slides, or have a 1-page handout.
Topics
Topic | Question/Topic Description | Student |
---|---|---|
x86 Registers | What are the names and sizes of all of the x86_64 registers? | |
Aarch64 Registers | What are the names and sizes of all of the Aarch64 registers? | |
NASM Syntax | What is NASM, and what are the basic rules of NASM syntax? | |
GNU x86_64 gas Syntax | What are the basic rules of GNU Assembler (gas) syntax for x86_64 platforms? | |
GNU aarch64 Syntax | What are the basic rules of GNU Assembler (gas) syntax for aarch64 platforms? | |
Argument storage on x86_64 | When a function/procedure is called on an x86_64 Linux system, where are the arguments stored? | |
Argument storage on aarch64 | When a function/procedure is called on an aarch64 system, where are the arguments stored? | |
System call numbers on x86_64 | What are the system call numbers on an x86_64 Linux system? | |
System call numbers on aarch64 | What are the system call numbers on an aarch64 Linux system? | |
PLT | In an ELF file, what is a PLT and how is it used? | |
Static and dynamic linking | What are the differences between static and dynamic linking? Advantages of each? | |
Copy-on-write | What is copy-on-write (when referring to memory in a Linux system)? When is it used? | |
Assembling using gas | How do you use the GNU assembler (gas) to compile an assembly-language program ("assemble" it)? | |
Single-stepping with gdb | How do you execute a program one instruction at a time (single-stepping) using the GNU debugger (gdb)? | |
Dividing on x86_64 and aarch64 | How do the division instructions work on x86_64 and aarch64? How are they different? | |
The Mysterious XOR | x86 and x86_64 code often contains instructions that XOR a register with itself (e.g., xor %eax,%eax ). What does this do and why is it used? |