Difference between revisions of "Fall 2014 SPO600 Assembly Language Presentation"
Chris Tyler (talk | contribs) |
Chris Tyler (talk | contribs) |
||
Line 24: | Line 24: | ||
|System call numbers on aarch64||What are the system call numbers on an aarch64 Linux system?|| | |System call numbers on aarch64||What are the system call numbers on an aarch64 Linux system?|| | ||
|- | |- | ||
− | |PLT|| | + | |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?|| | |Static and dynamic linking||What are the differences between static and dynamic linking? Advantages of each?|| | ||
Line 33: | Line 33: | ||
|- | |- | ||
|Single-stepping with gdb||How do you execute a program one instruction at a time (single-stepping) using the GNU debugger (gdb)?|| | |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., <code>xor %eax,%eax</code>). What does this do and why is it used?|| | |The Mysterious XOR||x86 and x86_64 code often contains instructions that XOR a register with itself (e.g., <code>xor %eax,%eax</code>). What does this do and why is it used?|| | ||
|- | |- | ||
|} | |} |
Revision as of 00:41, 5 September 2014
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? |