Escrita de um número em hexadecimal na tela em Assembly Puro para Linux x86 (Nasm - Netwide Assemble
Publicado por Perfil removido (última atualização em 08/04/2013)
[ Hits: 7.193 ]
Método semelhante à da escrita em decimal do outro código já postado em: http://www.vivaolinux.com.br/script/Escrita-de-um-numero-em-decimal-na-tela-em-Assembly-Puro-para-Li...
Há uma versão para este mesmo método de escrita em hexadecimal feita para o GNU Assembly (estilo AT&T), já publicada. Para uma melhor comparação das diferenças entre os dois modelos de codificação: http://www.vivaolinux.com.br/script/Escrita-de-um-numero-em-hexadecimal-na-tela-em-Assembly-Puro-par...
A diferença é a de trocar a string dos caracteres de escrita decimal "0123456789" pela string dos caracteres de escrita em hexadecimal "0123456789abcdef".
E trocar o valor do divisor, que é 10, por 16.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Comentários: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; nasm -f elf hexadecimal001.asm ; ld -s hexadecimal001.o -o hexadecimal001 ; 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, 0x10 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 "0123456789abcdef" nl db `\n` valor equ 4952488
Relógio em assembly NES 8 bits (variante do 6502)
Algoritmo de Raiz Quadrada Inteira em Assembly Puro para Linux x86 (GNU Assembler)
Nenhum comentário foi encontrado.
IA local no bolso, novo visual no Raspberry Pi OS e mais destaques do software livre
Kernel turbinado, compatibilidade em alta e debate sobre sustentabilidade: o dia no mundo Linux
Kernel turbinado e GNOME 49 dominam o giro do dia no mundo Linux
Novidades Linux: Kernel 6.17, distros em ebulição e segurança em foco
Kernel ganha novos linters Rust e distros avançam com recursos de IA
Adicionando o repositório backports no Debian 13 Trixie
Como definir um IP estático no Linux Debian
Como vencer a procrastinação? (2)
Alguém que utilize o Warsaw do BB no Ubuntu 24.04 [RESOLVIDO] (7)
Orientação para instalar o Warsaw - módulo de proteção do Banco do Bra... (9)