Open main menu

CDOT Wiki β

Changes

Fall 2014 SPO600 Assembly Language Presentation

1,149 bytes added, 13:12, 10 September 2014
Topics
!Topic!!Question/Topic Description!!Student
|-
|x86 Registers||What are the names and sizes of all of the x86_64 registers? 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? Which ones have special significance, unusual operation, or are required for specific operations?||
|-
|NASM SyntaxAbsolute addressing and Immediate values on Aarch64||What In Aarch64 systems, the total instruction is NASMlimited to 64 bits. Since some bits are required to encode the operation, addressing mode, and what registers, the number of bits available to specify an address or immediate value (constant) are limited. What are the basic rules of NASM syntaxlimitations? How can you work around these limitations?||
|-
|GNU x86_64 gas NASM Syntax||What is NASM, and what are the basic rules of GNU Assembler NASM syntax? How do you use preprocessor directives (gassuch as #include and #define) syntax for x86_64 platformsor equivalent?||
|-
|GNU aarch64 x86_64 gas Syntax||What are the basic rules of GNU Assembler (gas) syntax for aarch64 x86_64 platforms? How do you use preprocessor directives (such as #include or #define) or equivalent?||
|-
|Argument storage on x86_64GNU aarch64 Syntax||When a function/procedure is called on an x86_64 Linux system, where What are the arguments storedbasic rules of GNU Assembler (gas) syntax for aarch64 platforms? How do you use preprocessor directives (such as #include or #define) or equivalent?||
|-
|Argument storage on aarch64x86_64||When a function/procedure is called on an aarch64 x86_64 Linux system, where are the arguments stored? What if there are many arguments?||
|-
|System call numbers Argument storage on x86_64aarch64||What are the system call numbers When a function/procedure is called on an x86_64 aarch64 Linux system, where are the arguments stored? What if there are many arguments?||
|-
|System call numbers on aarch64x86_64||What are the system call numbers on an aarch64 x86_64 Linux system? Where are they defined and how do you use them?||
|-
|PLTSystem call numbers on aarch64||In What are the system call numbers on an ELF file, what is a PLT aarch64 Linux system? Where are they defined and how is it useddo you use them?||
|-
|Static and dynamic linkingPLT||What are the differences between static In an ELF file, what is a PLT and dynamic linkinghow is it used? Advantages of eachWhen does an ELF file not contain a PLT?||
|-
|Copy-on-writeStatic and dynamic linking||What is copy-on-write (when referring to memory in a Linux system)are the differences between static and dynamic linking? When is it usedAdvantages of each from the point of view of performance, resource utilization, and security?||
|-
|Assembling using gas||How do you use the GNU assembler (gas) to compile an assembly-language program ("assemble" it)from the command line?||
|-
|Single-stepping with gdb||How do you execute a program one instruction at a time (single-stepping) using the GNU debugger (gdb)? How do you view register contents between steps?||
|-
|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?||
|-
|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?||
|-
|}