Syscalls

Syscalls are invoked via SWI with syscall number in r7.

Convention

r7

Syscall number

r0-r2

Arguments

r0

Return value

Reference

EXIT (1): Terminate Program

Args: r0 = exit code

mov r0, #0
mov r7, #1
swi

READ (2): Read from File Descriptor

Args: r0 = fd, r1 = buffer, r2 = count Return: r0 = bytes read, or -1 on error

mov r0, #0       ; stdin
ldr r1, =buf
mov r2, #16
mov r7, #2
swi

WRITE (3): Write to File Descriptor

Args: r0 = fd, r1 = buffer, r2 = count Return: r0 = bytes written, or -1 on error

mov r0, #1       ; stdout
ldr r1, =msg
mov r2, #6
mov r7, #3
swi

File Descriptors: 0=stdin, 1=stdout, 2=stderr