Advertisement
AntonioVillanueva

C++ assembler leer punteros

Jan 16th, 2016
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.64 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. //asm(".intel_syntax noprefix");
  4. //asm(".att_syntax prefix");
  5.  
  6. /*usa assembler extend con inclusion explicita de la instruccion imul*/
  7.  
  8. char foo(char *c){
  9.  
  10.     int b(4);
  11.     asm (
  12.     "inc %1;"/* incrementa puntero de chars c*/
  13.     "mov (%1), %%eax;" /* carga el contenido del puntero el contenido de c en eax*/
  14.  
  15.     "mov %%eax,%0;" /* carga eax en b la salida */
  16.  
  17.      :"=r"(b)        /* output %0*/
  18.      :"r"(c)         /* input  %1*/
  19.      :"%eax"         /* clobbered register */
  20.      );
  21.     return b;
  22. };
  23.  
  24. int main(){
  25.     char cadena []="alfa";
  26.     cout <<" salida "<<foo(&cadena[0])<<endl;    
  27. return 0;
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement