Algoritmo de Raiz Quadrada Inteira em Assembly Puro para Linux x86 (NASM - Netwide Assembler)
Publicado por Perfil removido (última atualização em 18/08/2012)
[ Hits: 5.419 ]
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.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 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
Escrita de um número em hexadecimal na tela em Assembly Puro para Linux x86 (Nasm - Netwide Assemble
Escrita de um número em hexadecimal na tela em Assembly Puro para Linux 64 bits (GNU Assembly
Assembler 8086 - Recebe um caractere do usuário e imprime o código ASCII em pontos
Árvore binária de busca em Assembler 8086
Nenhum comentário foi encontrado.
Criar entrada (menuentry) ISO no Grub
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalando o Pi-Hole versão v5.18.4 depois do lançamento da versão v6.0
Instalar o VIM 9.1 no Debian 12
Como saber o range de um IP público?
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Linux Mint (21.2) não reconhece teclado mecanico RASEC da PCYES (2)