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
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
\Boot sem espaço em disco (Fedora KDE Plasma 42) (3)
Programa fora de escala na tela do pc (38)
Mint Xfce não mantém a conexão no wi-fi (2)









