Escrita de um número em hexadecimal na tela em Assembly Puro para Linux x86 (GNU Assembly)

Publicado por Perfil removido (última atualização em 15/04/2013)

[ Hits: 6.724 ]

Download hexadecimal001.s




Método semelhante à da escrita em decimal do outro código.

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.

  



Esconder código-fonte

############################################################################################
#      Comentários:
############################################################################################
#
#    as hexadecimal001.s -o hexadecimal001.o
#    ld -s hexadecimal001.o -o hexadecimal001
#    a opção -s no linkeditor faz 
#     "strip -s" automaticamente
#
############################################################################################

.section      .rodata

   digit:   .ascii   "0123456789abcdef"
   nl:   .ascii   "\n"
   valor:   .long   4952488

.section   .text         
.globl       _start         

_start:   

   pushl   $nl
   movl   valor,   %eax

_empilha:

   xorl    %edx,   %edx
   movl   $16,   %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

Scripts recomendados

GAS Calculadora de um dígito

Simples JIT (just in time) em C

Hora do sistema

Escrita de um número em octal na tela em Assembly Puro para Linux x86 (GNU Assembly)

FreeBSD Execve


  

Comentários
[1] Comentário enviado por tiekookeit em 12/07/2012 - 14:35h

nerdisse total kkkkkk


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts