"Clear Screen" para Linux x86 com Inline Assembly (embutido no código) em C
Publicado por Perfil removido (última atualização em 11/05/2012)
[ Hits: 5.261 ]
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.
#include <stdio.h> void clrscr(void); void clrscr(void){ const char *_CLRSCR_ = "{FONTE}33c{FONTE}"; const int _$CLRSCR_ = sizeof(_CLRSCR_); int _RET_; asm __volatile__("movl $4, %%eax\n\t" // interrupcao 4 "movl $1, %%ebx\n\t" // saida "movl %1, %%ecx\n\t" // _CLRSCR_ "movl %2, %%edx\n\t" // _$CLRSCR_ "int $0x80" // chamada ao kernel : "=a"(_RET_) // (output) armazena o retorno do codigo do que houve : "g"(_CLRSCR_), "g"(_$CLRSCR_) // (input) entrada dos valores para os registradores : "%ebx", "%ecx", "%edx", "%esi", "%edi" ); return; } int main (void) { clrscr(); return 0; }
Calcula ano de nascimento - C + Assembly
Algoritmo de Raiz Quadrada Inteira em Assembly Puro para Linux x86 (GNU Assembler)
Escrita de um número em hexadecimal na tela em Assembly Puro para Linux x86 (GNU Assembly)
GAS Inteiro para String (formato binário)
Criar entrada (menuentry) ISO no Grub
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
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)
Slackpkg+ (Slackpkg Plus) está de volta!
Como dividir duas janelas igualmente e lado-a-lado na sua tela
Ocomon 6.0.1 - Problemas ao editar configurações estendidas (7)
instalar o Linux em computadores Acer novos (7)
Será possível instalar Linux Mint LMDE em Sony Vaio? (19)
O livro "Linux - Guia do Administrador do Sistema (Rubem E. Ferre... (1)