1,885
edits
Changes
no edit summary
[[Category:SPO600 Labs]]
{{Admon/notelab|Purpose of this Lab|In this lab, you will experiment with assembler on the x86_64 and aarch64 platforms.}}
{{Admon/tip|Ireland|Perform this lab on ireland.proximity.on.ca.}}
2. Review, build, and run the x86_64 assembler code. Make sure you understand the code.
4. Build and run the C versions of the program for aarch64 (note: you may need to <code>make clean</code>).Verify that you can disassemble the object code in the ELF binary using <code>objdump -d</code>
5. Review, build, and run the aarch64 assembler code. Make sure you understand the code.
_start:
mov $start,%r15 /* loop index */
loop:
/* ... do something useful here ... */
inc %r15 /* increment register 15 index */ cmpq $10max,%r15 /* see if we're done */
jne loop /* loop if we're not */
9. Repeat step 8 for aarch64.
=== Deliverable Deliverables ===
1. Complete the group lab section, above.
2. Extend the assembler programs (both x86_64 and aarch64) to suppress the high digits when they are 0. In other words, the printed values should progress from 0-30 instead of from 00-30.
3. Blog about the programs you've written. Describe the experience of writing and debugging in assembler, as compared to writing in other languages. Contrast x86_64 and aarch64 assembler, and your experience with each, and your opinions of each. Include links to both of your assembler programs.