R a s p b e r e d

Usando o Raspberry Pi

Hello Puts

Programa para escrever “Hello Puts” na saída padrão

Chama a função “int puts(const char *str)” da linguagem C

/**
 * @file    hello_puts.s
 * @author  Halley Pacheco de Oliveira
 * @version 1.0
 * 
 * @section DESCRIPTION
 *
 * Programa para escrever "Hello Puts" na saída padrão.
 *
 * Chama a função "int puts(const char *str)" da linguagem C.
 *
 * @output "Hello Puts"
 * @return Tamanho da mensagem, ou EOF se der erro.
 */

// Raspberry Pi 3 Modelo A+
.cpu    cortex-a53
.fpu    neon-fp-armv8
.syntax unified                 // Sintaxe moderna

// Equivalências

.equ    SYS_EXIT, 1

// Dados

.data

.align
mensagem:
        .string "Hello Puts"    // Mensagem a ser exibida.

// Código

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

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

Makefile:

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

Construção e execução:

pi@raspberrypi:~/raspbered/assembly/hello_puts $ make clean
rm hello_puts.o hello_puts

pi@raspberrypi:~/raspbered/assembly/hello_puts $ make
as -o hello_puts.o hello_puts.s
gcc -o hello_puts hello_puts.o

pi@raspberrypi:~/raspbered/assembly/hello_puts $ ./hello_puts ; echo $?
Hello Puts
11
Última atualização em 2019-07-26
Publicado em 2019-07-26