1,885
edits
Changes
→Topics
!Topic!!Question/Topic Description!!Student
|-
|x86 Registers||What are the names and sizes of all of the x86_64 registers? Why are they named this way? Which ones have special significance, unusual operation, or are required for specific operations?||
|-
|Aarch64 Registers||What are the names and sizes of all of the Aarch64 registers? Why are they named this way? Which ones have special significance, unusual operation, or are required for specific operations?||
|-
|Absolute addressing and Immediate values on Aarch64||In Aarch64 systems, the total size instruction is limited to 64 bits. Since some bits are required to encode the operation, addressing mode, and registers, the number of bits available to specify an address or immediate value (constant) are limited. What are the limitations? How can you work around these limitations?||
|-
|NASM Syntax||What is NASM, and what are the basic rules of NASM syntax? How do you use preprocessor directives (such as #include and #define) or equivalent?||
|-
|PLT||In an ELF file, what is a PLT and how is it used? When does an ELF file not contain a PLT?||
|-
|Assembling using gas||How do you use the GNU assembler (gas) to compile an assembly-language program ("assemble" it) from the command line?||
|-
|Dividing integers on x86_64 and aarch64||How do the division instructions work on x86_64 and aarch64? How are they different? What are the advantages of each?||
|-
|Static and dynamic linking||What are the differences between static and dynamic linking? Advantages of each from the point of view of performance, resource utilization, and security?||
|-
|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? What is the equivalent in Aarch64?||
|-
|}