Pular para o conteúdo

"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.
Perfil removido removido
Hits: 5.562 Categoria: C/C++ Subcategoria: Assembly
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

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.
Download clrscr001.c Enviar nova versão

Esconder código-fonte

#include <stdio.h>

void clrscr(void);

void clrscr(void){

   const char *_CLRSCR_ = "
#include <stdio.h>

void clrscr(void);

void clrscr(void){

   const char *_CLRSCR_ = "
#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;

}
33c
#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;

}
";    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; }
33c
#include <stdio.h>

void clrscr(void);

void clrscr(void){

   const char *_CLRSCR_ = "
#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;

}
33c
#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;

}
";    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; }
";    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; }

GAS Bubblesort

GAS Inteiro para String

Escrita de um número em binário na tela em Assembly Puro para Linux 64 bits (GNU Assem

Fibonnaci de N em Assembly

Inverter uma string, Assembly8086

Contribuir com comentário

Entre na sua conta para comentar.