Lab3 - x86_64

Instruction In this lab, I explored assembly language programming on both x86_64 and Aarch64 platforms. The objective was to understand the differences in assembly code generation between these architectures and to implement a simple loop in assembly for both platforms.   Connect x86_64 server. ssh  username @x86-001.spo600.cdot.systems // replace username Unpack example code. once you connect to the server, unpack the example code with below command. tar -xzvf spo600-assembler-lab-examples.tgz Tree of spo600 directory sshin36@x86-001 : ~ $ tree spo600 spo600 └── examples     └── hello         ├── assembler         │   ├── aarch64         │   │   ├── hello.s         │   │   └── Makefile         │   ├── Makefile         │   └── x86_64         │   ...

Lab3 - AArch64

Instruction In this lab, I explored assembly language programming on both x86_64 and Aarch64 platforms. The objective was to understand the differences in assembly code generation between these architectures and to implement a simple loop in assembly for both platforms. Connect AArch64 Server. ssh  username @aarch64-001.spo600.cdot.systems // replace username Unpack example code. once you connect to the server, unpack the example code with below command. tar -xzvf spo600-assembler-lab-examples.tgz Tasks Task 1: Reviewing Assembly Language Programs We used objdump -d to disassemble the compiled binaries and compared the output to the original source code. This helped us understand how the source code translates into machine instructions for both x86_64 and Aarch64 architectures. Disassemble the object Code: objdump -d hello > hello_aarch64_disassembly.txt Review the main section. 00000000004005d8 <main>:   4005d8: a9bf7bfd stp x29, x30, [sp, #-16]!   4005dc...