Escrita de um número em binário na tela em Assembly Puro para Linux x86 (GNU Assembly)
Publicado por Perfil removido (última atualização em 25/02/2013)
[ Hits: 7.509 ]
Este programa utiliza-se da pilha por causa da reordenação dos dígitos após a divisões.
Do modo como foi escrito, trabalha com variáveis locais. Não são tão adequadas ou elegantes como algum tipo de variável local ou pilha, mas facilita a compreensão para se ter uma visão intuitiva do programa.
Conforme os restos são obtidos, são empilhados e ao término são desempilhados conforme vai sendo feita a impressão de cada dígito.
O último item a ser desempilhado é o endereço de um "new line", ponteiro para '\n' definido antecipadamente no código.
A interrupção de escrita trabalha com endereços de memória do que se deseja que seja enviado para uma saída, no caso a tela.
Este caractere identifica o final da escrita dos dígitos.
############################################################################################ # Comentários: ############################################################################################ # # as binario001.s -o binario001.o # ld -s binario001.o -o binario001 # a opção -s no linkeditor faz # "strip -s" automaticamente # ############################################################################################ .section .rodata digit: .ascii "01" nl: .ascii "\n" valor: .long 4952488 .section .text .globl _start _start: pushl $nl movl valor, %eax _empilha: xorl %edx, %edx movl $2, %ecx divl %ecx addl $digit, %edx pushl %edx cmpl $0, %eax jg _empilha _escreve: movl $4, %eax movl $1, %ebx popl %ecx movl $1, %edx int $0x80 cmpl $nl, %ecx jne _escreve _fim: movl %eax, %ebx movl $1, %eax int $0x80
Crivo de Eratóstenes Simples para Linux x86 em Assembly Puro (GNU Assembler)
Escrita de um número em decimal na tela em Assembly Puro para Linux 64 bits (GNU Assembly)
Algoritmo de Raiz Quadrada Inteira em Assembly Puro para Linux x86 (GNU Assembler)
"Clear Screen" para Linux x86 em Assembly Puro (Nasm - Netwide Assembler)
GAS "Hello World" o número de vezes definido pelo usuário
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Erro no upgrade: Sub-process /usr/bin/dpkg returned an error code (1) ... (3)
Falta pacotes de suporte ao sistema de arquivos (Gerenciador de discos... (6)