Hello Printf


/*
 * Programa para escrever "Hello Printf"
 * usando a função printf da linguagem C.
 */

.equ	SYS_EXIT, 1

.data

.align 4
controle:
	.string	"Hello %s\n"	// Texto de controle da formatação.

.align 4
string:
	.string	"Printf"	// Texto a ser incluído na formatação.

.text
.global main
.global printf			// Função printf da linguagem C.

main:
        LDR	R0, =controle	// Primeiro parâmetro de printf.
        LDR	R1, =string	// Segundo parâmetro de printf.
        BL	printf
end:
	LDR	R7, =SYS_EXIT	// Número da chamada do sistema em R7 (terminar).
	SVC	0		// Chamar o sistema operacional.

Makefile:

hello_printf: hello_printf.o
	gcc -o hello_printf hello_printf.o
hello_printf.o: hello_printf.s
	as -o hello_printf.o hello_printf.s
clean:
	rm hello_printf.o hello_printf

Construção e execução:

pi@raspberrypi:~/assembly/hello_printf $ make clean
rm hello_printf.o hello_printf
pi@raspberrypi:~/assembly/hello_printf $ make
as -o hello_printf.o hello_printf.s
gcc -o hello_printf hello_printf.o
pi@raspberrypi:~/assembly/hello_printf $ ./hello_printf 
Hello Printf

↑ Acima