Escrita de um número em binário na tela em Assembly Puro para Linux x86 (Nasm - Netwide Assembler)
Este programa utiliza-se da pilha por causa da reordenação dos dígitos após a divisões. Do modo como foi escrito, trabalha com variáveis locais. Não são tão adequadas ou elegantes como algum tipo de variável local ou pilha, mas facilita a compreensão para se ter uma visão intuitiva do programa. Conforme os restos são obtidos, são empilhados e ao término são desempilhados conforme vai sendo feita a impressão de cada dígito. O último item a ser desempilhado é o endereço de um "new line", ponteiro para '\n' definido antecipadamente no código. A interrupção de escrita trabalha com endereços de memória do que se deseja que seja enviado para uma saída, no caso a tela. Este caractere identifica o final da escrita dos dígitos.
Por: Perfil removido
Algoritmo de Raiz Quadrada Inteira em Assembly Puro para Linux x86 (GNU Assembler)
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.
Por: Perfil removido
"Clear Screen" para Linux x86 com Inline Assembly (embutido no código) em C
Esta função dentro deste código realiza o mítico "clear screen" em ANSI C. Uma chamada de interrupção de kernel para imprimir uma sequência de escape de terminal que limpe o código. Nenhum segredo para compilar. Apenas uso simples do GCC.
Por: Perfil removido
"Clear Screen" para Linux x86 em Assembly Puro (Nasm - Netwide Assembler)
Obs[1]: Testado apenas para o nasm (Netwide Assembler.). Não funciona com "as" (GNU Assembler). Nem o outro para o GNU Assembler funciona com Nasm. Obs[2]: Sempre é bom lembrar: não funciona em nada que rode "INT 21h". TASM está fora... Aqui é int 0x80 (int 80h). Obs[3]: O comando "strip" retira informações usadas para depurar com o gdb. Como está tudo ok, estas serão retiradas para ficar menor ainda. Ou então usa-se a opção "-s" no comando "ld", que já faz isso direto. Obs[4]: (Já ocorreu antes) Sequẽncias de escape não estão sendo visttas corretaente. Qualquer coisa que use BACKSLASH "\" + "0", por exemplo. Estão saindo assim "\" + "0" = "{" + FONTE + "}" Sem as aspas e os espaços em branco. Em todo o caso, recomendo baixar o código para visualizar melhor. ======================================= Este código simplesmente retira os caracteres do console após executado muito parecido com o comando "clear" do Unix/Linux. Para gerar o executável, usar: "$ nasm -f elf clrscr001.asm" Em seguida usar: "ld -s clrscr001.o -o clrscr001" A opção "-s" é opcional e aplica um "strip -s" automaticamente. Se alguém quiser usar o gdb, não deverá aplicar "-s", nem usar "strip -s" após a linkedição. Depois para executar: "$ ./clrscr001" Após a montagem, por aqui ficou com apenas 665 bytes. E aaṕos o processo de "strip", retirando informações de montagem, linkedição etc. seja junto com a linkedição ou após "strip -s" ficou com apenas 348 bytes. Quer dizer, também ficou menor que os 512 bytes da MBR de um HD convencional, mas uns poucos bytes maior que um equivalente feito em GNU Assembler.
Por: Perfil removido
"Clear Screen" para Linux x86 em Assembly Puro (GNU Assembly)
Obs[1]: Testado apenas para o as (GNU Assembly.). Não tentei com o Nasm. Obs[2]: Óbvio, mas bom ressaltar: não funciona em nada que rode "INT 21h". TASM está fora... Obs[3]: (De última hora) Está aparecendo um sinal entre chaves escrito em maiúsculo "FONTE" no lugar do BACKSLASHZERO (barra invertida-zero), sinal de caractere zero e de fim de string em C, quando alguma coisa lê uma string e entende o símbolo como zero. "\" + "0" = BACKSLASHZERO = Caractere nulo. Ditando a grosso modo, caso não dê pra ver corretamente, fica sendo a seguinte linha deste modo: .ascii "BACKSLASHZERO33cBACKSLASHZERO" O "33" fica aonde está, junto com a letra "c" (minúscula). Apenas troca-se o nome da barra pela barra e o ZERO pelo algarismo "0". ======================================= Este código simplesmente retira os caracteres do console após executado muito parecido com o comando "clear" do Unix/Linux. Para gerar o executável, usar: "$ as clrscr001.s -o clrscr001.o" Em seguida usar: "ld clrscr001.o -o clrscr001" Depois para executar: "$ ./clrscr001" Após a montagem, por aqui ficou com apenas 591 bytes. E logo depois ao usar "$ strip -s clrscr001" para retirar informações de montagem, link edição etc ficou com apenas 308 bytes. Quer dizer, menor que os 512 bytes da MBR de um HD convencional. Obs: O comando "strip" retira informações usadas para depurar com o gdb. Como está tudo ok, estas serão retiradas para ficar menor ainda.
Por: Perfil removido
GAS Bubblesort
Algoritmo de ordenação bubblesort ordenando uma string.
Por: Perfil removido
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Criando uma VPC na AWS via CLI
Multifuncional HP imprime mas não digitaliza
Dica básica para escrever um Artigo.
Como Exibir Imagens Aleatórias no Neofetch para Personalizar seu Terminal
A IMPRESSORA NÃO IMPRIMI NO WIN10 (0)
touchpad não funcona junto do teclado - debian (0)
Acabei zuando meu Linux inteiro e estou desesperado (2)