ARM Assembly on Raspberry Pi 3 • 8 Apr 2016
Prepare a source file hello.s containing:
.data
greeting:
.ascii "Hi there\n"
.text
.globl _start
_start:
mov r7, #4 @ sys_write
mov r0, #1 @ stdout
ldr r1,=greeting @ address of string
mov r2, #9 @ length of string
svc #0 @ linux syscall
mov r7, #1 @ sys_exit
mov r0, #0 @ return result
svc #0 @ linux syscall
Assemble, link and run the program using:
as -o hello.o -alh -g hello.s
ld -o hello hello.o
./hello
Debugging tips
gdb hello
b _start
run
display/i $pc
si
...repeatedly press Enter to step through the program
Alternatively, you can use the graphical 'ddd' debugger to step through the program.
sudo apt-get install ddd
ddd hello