My favorites | Sign in
Project Logo
                
Search
for
Updated Aug 26, 2009 by maurojoel
Labels: Featured, Phase-Implementation
ExecutavelAssembly  
Um exemplo de como programar assembly para o SOmBRA.

Introdução

Todos os programas precisam do assembly para poderem ser executados e conhecer as chamadas do Sistema Operacional também são muito importantes, então aqui vai um breve exemplo de como é um programa assembly para o SOmBRA.

Exemplo

/***********************************************************************************
** Programa: teste.app                                                            **
** Data: 14/08/2008 - atualização 26/08/2009                                      **
** Autor: Mauro Joel Schutz                                                       **
** Descrição: Este programa mostra um exemplo de como exibir                      **
**    a mensagem "Fazendo um teste" no console do usuário                         **
***********************************************************************************/

/***********************************************************************************
** Para ver como funciona todas as chamadas de sistema, veja a página ChamadasDeSistema
** na Wiki do Projeto SOmBRA em: http://code.google.com/p/projeto-sombra/wiki
***********************************************************************************/

// Seção de código
.text

.globl _start

_start:
// Abrindo arquivo de console
    movl $100, %eax
    movl $io_file, %ebx
    movl $1, %ecx
    int $0x30
    movl %eax, stdinout

// Enviando a frase
    movl $103, %eax
    movl $frase, %ebx
    movl $16, %ecx
    movl stdinout, %edx
    int $0x30

// Fechando o arquivo de console
    movl $101, %eax
    movl stdinout, %ebx
    int $0x30

// Saindo do programa
    movl $402, %eax
    int $0x30

// Seção de dados inicializados
.data

// String que vamos mostrar na tela
frase:
    .ascii "Fazendo um teste"

// Local de arquivo especial tty
io_file:
    .asciz "/dev/tty"

// Seção de dados não inicializados
.bss

// Variavel para armazenar ID do arquivo
stdinout:
    .long 0

Acho que os comentários no código fonte são o suficiente para entender que o programa imprime a mensagem "Fazendo um teste" no terminal do sistema. Compile usando o comando tcc teste.S, assim gerando o programa teste.app

Outros exemplos

Para quem busca outros exemplos, eles podem ser encontrados na pasta sombra/examples no compilador TCC.

Concluindo

Para obter um lista completa das chamadas de sistema, é só ir a Wiki procurar pela página ChamadasDeSistema e lá incluirá todos os detalhes de como as chamadas podem e devem ser usadas.

OBS: O comando tcc é o compilador (C e Assembly) e linker usado para gerar programas para o SOmBRA, para baixa-lo é só entrar na seção de downloads do projeto.


Sign in to add a comment
Hosted by Google Code