Difference between revisions of "Fall 2014 SPO600 Assembly Language Presentation"
Chris Tyler (talk | contribs) |
Chris Tyler (talk | contribs) |
||
Line 1: | Line 1: | ||
{{Chris Tyler Draft}} | {{Chris Tyler Draft}} | ||
+ | |||
+ | == Assignment == | ||
+ | |||
+ | # Select one of the topics below by placing your name in the "Student" column. | ||
+ | # 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. | ||
== Topics == | == Topics == |
Revision as of 00:44, 5 September 2014
Assignment
- Select one of the topics below by placing your name in the "Student" column.
- 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.
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? | |
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? |