Advertisement
AntonioVillanueva

Acceso a un array de INT , C++ & inline assembler AT&T

Jan 22nd, 2016
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.63 KB | None | 0 0
  1. // sintaxis AT&T
  2. //Acceso a un vector en assembler
  3. #include <iostream>
  4. using namespace std;
  5.  
  6. int lee_vector(long despl){//utilizo long por concordancia con %1
  7.     int vector[8]={1,2,3,4,5,6,7,8}, sal=0;//int 4 byte
  8.     asm volatile(
  9.  
  10.     "add %2,%1 \n \t"/*suma el desplazamiento como parametro a la posicion de memoria*/
  11.     "mov (%1),%0 \n \t"/* copia de la posicion de memoria hacia la variable sal */
  12.  
  13.     : "=g"(sal) /* %0 =sal */
  14.     : "r"(vector) , "r" (despl)/* %1 vector[8] %2 despl*/
  15.     : "%eax" ,"%esi"
  16.     );
  17.     return sal;
  18. };
  19.  
  20. int main(){
  21.     for (auto i=0;i<8*4;i+=4)
  22.         cout <<"vector ["<<i<<"]= "<<lee_vector(i)<<endl;
  23. return 0;
  24. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement