1
edit
Changes
→Topics
== Topics ==
{|class="wikimedia sortable" border="1" cellpadding="5" cellspacing="0"
!Topic!!Question/Topic Description!!StudentPresenter!!Links to resources (Wiki page, handout, web resources)!!Link to your blog post on this topic|-|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?|| Kieran Sedgwick|| |||-|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?|| Edwin Lum|| ||
|-
|x86 RegistersAddress and immediate values on Aarch64||What In Aarch64 systems, the size of each instruction is limited to 32 bits. Since some bits are required to encode the names operation, addressing mode, and sizes of all registers, the number of bits available to specify an address or immediate value (constant) are much less than the 64 bits required for a full address or integer value on this on this architecture. How are constant values represented, and what are the limitations on the x86_64 registersvalues that can be specified? How can you work around these limitations?|| [[User:Chris Tyler|Chris Tyler]]|| ||
|-
|Aarch64 RegistersNASM Syntax||What is NASM, and what are the names basic rules of NASM syntax? How do you use preprocessor directives (such as #include and sizes of all of the Aarch64 registers#define) or equivalent?|| Omid Djahanpour|| ||
|-
|NASM GNU x86_64 gas Syntax||What is NASM, and what are the basic rules of NASM GNU Assembler (gas) syntaxfor x86_64 platforms?How do you use preprocessor directives (such as #include or #define) or equivalent?|| Brendan Henderson|| ||
|-
|GNU x86_64 gas aarch64 Syntax||What are the basic rules of GNU Assembler (gas) syntax for x86_64 aarch64 platforms?How do you use preprocessor directives (such as #include or #define) or equivalent?|| [[User:Chris Tyler|Chris Tyler]]|| ||
|-
|GNU aarch64 SyntaxArgument storage on x86_64||When a function/procedure is called on an x86_64 Linux system, where are the arguments stored? What if there are the basic rules many arguments?|| Adam Sharpe||[http://www.x86-64.org/documentation/abi.pdf Pages 13-22 of GNU Assembler (gas) syntax for aarch64 platforms?this thing]||[http://adamsharpe8.blogspot.ca/2014/09/assembly-generated-from-function-calls.html Blog Post]
|-
|Argument storage on x86_64aarch64||When a function/procedure is called on an x86_64 aarch64 Linux system, where are the arguments stored?What if there are many arguments?|| [[User:Chris Tyler|Chris Tyler]] || ||
|-
|Argument storage System call numbers on aarch64x86_64||When a function/procedure is called What are the system call numbers on an aarch64 x86_64 Linux system, where ? Where are the arguments storedthey defined and how do you use them?|| [[User:Chris Tyler|Chris Tyler]]|| ||
|-
|System call numbers on x86_64aarch64||What are the system call numbers on an x86_64 aarch64 Linux system?Where are they defined and how do you use them?|| [[User:Chris Tyler|Chris Tyler]] || ||
|-
|System call numbers on aarch64PLT||What are the system call numbers on In an aarch64 Linux systemELF file, what is a PLT and how is it used?When does an ELF file not contain a PLT?|| [[User:Chris Tyler|Chris Tyler]] || ||
|-
|PLTAssembling using gas||How do you use the GNU assembler (gas) to compile an assembly-language program ("assemble" it) from the command line, producing an executable file? What is a PLT and how is it usedare some useful command-line options?|| [[User:Chris Tyler|Chris Tyler]] || ||
|-
|Static and dynamic linkingSingle-stepping with gdb||What are How do you execute a program one instruction at a time (single-stepping) using the differences GNU debugger (gdb)? How do you view register contents between static and dynamic linkingsteps? Advantages of each|| Hunter Jansen|| [http://calmlycoding.com:7777 slides], [https://docs.google.com/presentation/d/1pLEKHT13PxNEpJ06Xa_tBwJXVlr8mjBpme7acNL93AI/edit?usp=sharing slides] || [http://rawkamatic.github.io/open%20source/2014/09/22/SPO-Lab3-GDB-Stepping.html blog post] ||
|-
|Copy-Dividing integers on-writex86_64 and aarch64||What is copy-How do the integer division instructions work on-write (when referring to memory in a Linux system)x86_64 and aarch64? How are they different? When is it usedWhat are the advantages of each?|| Gabriel Castro|| ||
|-
|Assembling using gasStatic and dynamic linking||How do you use What are the GNU assembler (gas) to compile an assemblydifferences between static and dynamic linking? What are the advantages of each from the point of view of performance, resource utilization, and security?|| Linpei Fan||[http://cs-fundamentals.com/c-programming/static-and-dynamic-linking-in-language programc.php reference1], [http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dai0242a/ch04.html reference2], [http://stackoverflow.com/questions/1993390/static-linking-vs-dynamic-linking reference3] ||[http://linpei.blogspot.ca/2014/09/static-linking-vs-dynamic-linking.html blog post]
|-
|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?|| Emmanuel Ho Fidelino|| ||
|-
|}