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.904 ]
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 hexadecimal na tela em Assembly Puro para Linux x86 (GNU Assembly)
Algoritmo de Raiz Quadrada Inteira em Assembly Puro para Linux x86 (GNU Assembler)
Assembler 8086 - Simples código que mostra horas e minutos em pontos
Nenhum comentário foi encontrado.
DOOM clássico (quase) vanilla e um pouco melhorado
Mamãe, quero descompactar e também compactar arquivos no terminal!
Warped Tentacles para Doom Clássico
Conheça a extensão Just Perfection para mudar várias opções do Gnome
Desligando ou reiniciando o Gnome rapidinho
Dois Linux numa maquina só (10)
Impedir que seja trocado o nome da conta pelo usuário no "Configu... (19)
menu em yad não funciona os botões de fecha (9)
Zorin 17.1 MacBook pro 2011 - Monitor secundário sem imagem/sem sinal ... (2)
Como ter permissão para inserir ficheiros no nextcloud usando usuário ... (5)