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.671 ]
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 decimal na tela em Assembly Puro para Linux x86 (GNU Assembler)
Escrita de número em binário em Assembly Puro para Linux 64 bits (Nasm - Netwide Assembler)
Escrita de número em hexadecimal em Assembly Puro para Linux 64bits (Nasm - Netwide Assemble)
Escrita de um número em hexadecimal na tela em Assembly Puro para Linux x86 (GNU Assembly)
Quadrado de um número em assembly
Nenhum comentário foi encontrado.
Boas Práticas e Padrões Idiomáticos em Go e C
Vale a pena ter mais de uma interface grafica no seu Linux?
Estrutura e Funcionamento de um Ebuild no Gentoo Linux
Copiar Para e Mover Para no menu de contexto do Nautilus e Dolphin
Dotando o Thunar das opcoes Copiar para e Mover para no menu de contexto
Usando o ble.sh (Bash Line Editor) no lugar do bash completion
Montagem pré automática de HD externo usb em NTFS não funciona no Debian Trixie - Solução
Instalação Dual Boot Linux+Windows 11 (3)
No Ubuntu 26.04, sudo passou a mostrar os asteriscos ao digitar por pa... (5)
Como instalar Warsaw no Gentoo? (0)
Como insiro e excluo um elemento XML e JSON ao código Javascript (1)









