Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Fedora 15 (atualizado) II
Por pinduvoz
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Scripts

Linux user

Publicado por Listeiro 037 em (última atualização em 18/08/2012)   [ 1563 hits ]

Login: Listeiro 037, 189898 pontos

Download:


Descrição

Algoritmo de obtenção de raiz quadrada inteira em assembly puro para Linux.

Sem uso de alguma instrução para a operação ou algoritmo iterativo que necessite de valores de ponto flutuante.


[ Download: raizquadrada001.asm ]   [ Enviar nova versão ]

[ Esconder código-fonte ]

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;      Comentários:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;    nasm -f elf raizquadrada001.asm -o raizquadrada001.o
;    ld -s raizquadrada001.o -o raizquadrada001
;    a opção -s no linkeditor faz "strip -s" automaticamente
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

section   .text         
global       _start   

_start:   

   mov   ebx,   valor
   xor   ecx,   ecx

_separa:

   mov   eax,   ebx
   and   eax,   0x03

   push   eax

   inc   ecx

   shr   ebx,   0x02
   cmp    ebx,   0x00

   jg    _separa

   xor   eax,   eax
   xor   ebx,   ebx

_raiz:

   pop   edx

   shl   ebx,   0x02
   add   ebx,   edx

   shl   eax,   0x01
   mov   edx,   eax
   shl   edx,   0x01

   inc   edx

   cmp   ebx,   edx
   jl   _zero

   sub   ebx,   edx
   add   eax,   0x01

_zero:

   dec   ecx
   cmp   ecx,   0x00

   jg   _raiz

   push   0x0a
   xor    ebx,   ebx
   mov   ebx,   0x04

_empilha:

   xor    edx,   edx
   mov   ecx,   0x0a
   div   ecx
   add   edx,   0x30
   push   edx
   add   ebx,   0x04
   cmp    eax,   0x00
   jg    _empilha

_escreve:

   mov   edx,   ebx
   mov    ecx,   esp
   mov    ebx,   0x01
   mov    eax,   0x04

   int    0x80

_fim:

   pop   eax
   add   esp,   eax

   xor    ebx,    ebx
   mov    eax,   0x01
   int    0x80

section      .rodata

   valor   equ   4097



Scripts recomendados
   Script Linux recomendado FreeBSD Write
   Script Linux recomendado Escrita de um número em octal na tela em Assembly Puro para Linux x86 (GNU Assembly)
   Script Linux recomendado "Clear Screen" para Linux x86 com Inline Assembly (embutido no código) em C
   Script Linux recomendado Assembler 8086 - Recebe um caractere do usuário e imprime o código ASCII em pontos
   Script Linux recomendado Escrita de um número em octal na tela em Assembly Puro para Linux x86 (Nasm - Netwide Assembler)

Comentários
Nenhum comentário foi encontrado.

Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.