Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // sintaxis AT&T
- //Acceso a un vector en assembler
- #include <iostream>
- using namespace std;
- int lee_vector(long despl){//utilizo long por concordancia con %1
- int vector[8]={1,2,3,4,5,6,7,8}, sal=0;//int 4 byte
- asm volatile(
- "add %2,%1 \n \t"/*suma el desplazamiento como parametro a la posicion de memoria*/
- "mov (%1),%0 \n \t"/* copia de la posicion de memoria hacia la variable sal */
- : "=g"(sal) /* %0 =sal */
- : "r"(vector) , "r" (despl)/* %1 vector[8] %2 despl*/
- : "%eax" ,"%esi"
- );
- return sal;
- };
- int main(){
- for (auto i=0;i<8*4;i+=4)
- cout <<"vector ["<<i<<"]= "<<lee_vector(i)<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement