Escrita de um número em binário na tela em Assembly Puro para Linux x86 (Nasm - Netwide Assembler)
Publicado por Perfil removido (última atualização em 02/08/2012)
[ Hits: 5.867 ]
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: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; nasm -f elf binario001.asm ; ld -s binario001.o -o binario001 ; a opção -s no linkeditor faz ; "strip -s" automaticamente ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; section .text global _start _start: push nl mov eax, valor _empilha: xor edx, edx mov ecx, 0x02 div ecx add edx, digit push edx cmp eax, 0x00 jg _empilha _escreve: mov eax, 0x04 mov ebx, 0x01 pop ecx mov edx, 0x01 int 0x80 cmp ecx, nl jne _escreve _fim: mov eax, 0x01 int 0x80 section .rodata digit db "01" nl db `\n` valor equ 4952488
Escrita de um número em octal na tela em Assembly Puro para Linux 64 bits (GNU Assembler)
Algoritmo de Raiz Quadrada Inteira em Assembly Puro para Linux x86 (GNU Assembler)
Escrita de um número em hexadecimal na tela em Assembly Puro para Linux 64 bits (GNU Assembly
Nenhum comentário foi encontrado.
Agora temos uma assistente virtual no fórum!!! (247)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
Microfone do meu headset não é recinhecido. Meu notebook é um Acer Asp... (7)
Como configuro meu controle de xbox no mupen64? (7)
redirecionando saida de comando touch para o AWK[AJUDA] (4)