Fatorial Assembly MIPS
Usando o simulador MARS, fiz esse pequeno script para demonstrar como uma operação de fatoração pode ser executada, basta alterar o valor da variável 'num'. Optei por não utilizar dados de entrada para simplificar o entendimento.
Por: Saulo Gomes
Escrita de número em hexadecimal em Assembly Puro para Linux 64bits (Nasm - Netwide Assemble)
A primeira versão deste código foi publicada no formato de 32 bits: http://www.vivaolinux.com.br/script/Escrita-de-um-numero-em-hexadecimal-na-tela-em-Assembly-Puro-para-Linux-x86-(Nasm-Netwide-Assemble/ Esta versão foi criada no formato de 64 bits, para criação de objeto e linkedição em formato ELF64. Semelhante ao outro, este código utiliza-se da pilha para a reordenação dos dígitos após as divisões sucessivas. Também escrito para usar variáveis globais, não tão adequadas ou elegantes como variáveis locais ou a pilha, visando facilitar a compreensão uma visão intuitiva do programa. Conforme os restos das divisões são obtidos, serão empilhados, sendo acrescidos do endereço inicial da string "digit", de modo que o valor empilhado aponta exatamente - é um endereço de memória, vulgo ponteiro - para o dígito que deve ser impresso. Conforme são desempilhados os valores, os dígitos vão sendo impressos. O último item a ser desempilhado é um ponteiro para o "new line" armazenado ao final do código. Este caractere identifica o final da escrita dos dígitos, feita através de um cmp (comparação). As diferenças entre a versão de 32 bits e a de 64 bits ficam visíveis no uso das interrupções, chamadas de interrupções e registradores. interrupção de escrita 32 bits = 4 interrupção de escrita 64 bits = 1 interrupção de encerramento 32 bits = 1 interrupção de encerramento 64 bits = 60 chamada de interrupção 32 bits = "int 0x80" chamada de interrupção 32 bits = "syscall" registradores usados no código com interrupções de 32 bits = eax. ebx, ecx, edx registradores usados no código com interrupções de 64 bits = rax. rdi, rsi, rdx No caso dos registradores, percebe-se que em 64 bits houve uma pequena mudança na analogia usual.
Por: Perfil removido
Escrita de número em decimal em Assembly Puro para Linux 64 bits (Nasm - Netwide Assembler)
A primeira versão deste código foi criada no formato de 32 bits: http://www.vivaolinux.com.br/script/Escrita-de-um-numero-em-decimal-na-tela-em-Assembly-Puro-para-Linux-x86-(Nasm-Netwide-Assembler)/ Esta versão está no formato de 64 bits, para criação de objeto e linkedição em formato ELF64. Semelhante à primeira, este código utiliza-se da pilha para a reordenação dos dígitos após as divisões sucessivas. Também escrito para usar variáveis globais, não tão adequadas ou elegantes como variáveis locais ou a pilha, visando facilitar a compreensão e uma visão intuitiva do programa. Conforme os restos das divisões são obtidos, serão empilhados, sendo acrescidos do endereço inicial da string "digit", de modo que o valor empilhado aponta exatamente - é um endereço de memória, vulgo ponteiro - para o dígito que deve ser impresso. Conforme são desempilhados os valores, os dígitos vão sendo impressos. O último item a ser desempilhado é um ponteiro para o "new line" armazenado ao final do código. Este caractere identifica o final da escrita dos dígitos, feita através de um cmp (comparação). As diferenças entre a versão de 32 bits e a de 64 bits ficam visíveis no uso das interrupções, chamadas de interrupções e registradores. - Interrupção de escrita 32 bits = 4 - Interrupção de escrita 64 bits = 1 - Interrupção de encerramento 32 bits = 1 - Interrupção de encerramento 64 bits = 60 - Chamada de interrupção 32 bits = "int 0x80" - Chamada de interrupção 32 bits = "syscall" - Registradores usados no código com interrupções de 32 bits = eax. ebx, ecx, edx - Registradores usados no código com interrupções de 64 bits = rax. rdi, rsi, rdx No caso dos registradores, percebe-se que em 64 bits houve uma pequena mudança na analogia usual.
Por: Perfil removido
Escrita de número em octal em Assembly puro para Linux 64 bits (NASM - Netwide Assembler)
Este pequeno programa em Assembly tem uma antiga versão em formato de 32 bits: http://www.vivaolinux.com.br/script/Escrita-de-um-numero-em-octal-na-tela-em-Assembly-Puro-para-Linux-x86-(Nasm-Netwide-Assembler)/ Esta versão está no formato 64 bits, para criação de objeto e linkedição em formato ELF64. Semelhante à primeira versão, este código utiliza-se da pilha para a reordenação dos dígitos após as divisões sucessivas. Também escrito para usar variáveis globais, não tão adequadas ou elegantes como variáveis locais ou a pilha, visando facilitar a compreensão e uma visão intuitiva do programa. Conforme os restos das divisões são obtidos, serão empilhados, sendo acrescidos do endereço inicial da string "digit", de modo que o valor empilhado aponta exatamente - é um endereço de memória, vulgo ponteiro - para o dígito que deve ser impresso. Conforme são desempilhados os valores, os dígitos vão sendo impressos. O último item a ser desempilhado é um ponteiro para o "new line" armazenado ao final do código. Este caractere identifica o final da escrita dos dígitos, feita através de um cmp (comparação). As diferenças entre a versão de 32 bits e a de 64 bits ficam visíveis no uso das interrupções, chamadas de interrupções e registradores. - Interrupção de escrita 32 bits: 4 - Interrupção de escrita 64 bits: 1 - Interrupção de encerramento 32 bits: 1 - Interrupção de encerramento 64 bits: 60 - Chamada de interrupção 32 bits: "int 0x80" - Chamada de interrupção 32 bits: "syscall" - Registradores usados no código com interrupções de 32 bits: eax. ebx, ecx, edx - Registradores usados no código com interrupções de 64 bits: rax. rdi, rsi, rdx No caso dos registradores, percebe-se que em 64 bits houve uma pequena mudança na analogia usual.
Por: Perfil removido
Escrita de um número em octal na tela em Assembly Puro para Linux x86 (Nasm - Netwide Assembler)
Método semelhante à da escrita em binário do outro código. A diferença é a de trocar a string dos caracteres de escrita binária "01" pela string dos caracteres de escrita em octal "01234567". E trocar o valor do divisor, que é 2, por 8.
Por: Perfil removido
Escrita de um número em octal na tela em Assembly Puro para Linux x86 (GNU Assembly)
Método semelhante à da escrita em binário do outro código. A diferença é a de trocar a string dos caracteres de escrita binária "01" pela string dos caracteres de escrita em octal "01234567". E trocar o valor do divisor, que é 2, por 8.
Por: Perfil removido
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Linux Mint não conecta Wi-Fi sem fio (21)
Criar perfil temporário no Active Directory samba4-21 (2)
Meu Kubuntu não inicia, além do modo de recuperação (no meu dualboot (1)