Open main menu

CDOT Wiki β

Changes

SPO600 64-bit Assembly Language Lab

1,602 bytes removed, 13:02, 7 February 2020
no edit summary
{{Admon/tip|SPO600 Servers|Perform this lab on [[SPO600 Servers]] (you may use your own x86_64 system if desired, along with the AArch64 server).}}
== Lab 3 5 ==<!--
### THIS COMMENTED-OUT SECTION DESCRIBES THE
### CONFIGURATION USED FOR THE WINTER 2014
### OFFERING OF THE SPO600 COURSE, WHERE THE
### AARCH64 WORK WAS DONE IN EMULATION ALONGSIDE
### THE X86_64 WORK ON THE INTEL HOST "IRELAND".
### IN FALL 2014, AARCH64 HARDWARE WAS AVAILABLE,
### AND IRELAND HAD FAILED, SO WE SWITCHED TO
### THOSE HOSTS.
 
=== Ireland - Configuration ===
 
The host ''Ireland'' (ireland.proximity.on.ca) has been set up so that you can use it normally as an x86_64 host, or [[SPO600 aarch64 QEMU on Ireland|use an emulation environment to build and run aarch64 binaries]].
 
The directory <code>~/arm64/spo600/examples</code>, which is also accessible as <code>~/spo600-examples</code>, contains these files:
 
── hello # 'hello world' example programs
├── assembler
│ ├── aarch64 # aarch64 assembler version
│ │ ├── hello.s
│ │ └── Makefile
│ └── x86_64 # x86_64 assembler versions
│ ├── hello-gas.s # 64-bit instructions with AT&T/gnu assembler syntax (called 'gas', /usr/bin/as)
│ ├── hello-nasm.s # 32-bit instructions with Intel/nasm assembler syntax (/usr/bin/nasm)
│ └── Makefile
└── c
├── hello2.c # C version using the write() syscall wrapper
├── hello.c # C version using printf()
└── Makefile
 
Throughout this lab, take advantage of ''[[make and Makefiles|make]]'' whenever possible.
 
-->
=== Code Examples ===