Entiendo que no me hice claro. Mi duda, creo, se puede resumir en esto:¿Cómo compila un compilador C++ los nombres de las variables?
En un archivo ejecutable (código de máquina) ¿cómo se representan las "variables"? ¿Son direcciones de memoria estáticas? ¿El compilador le da a cada uno un "nombre" específico (o simplemente conserva el que le diste)?
Expresado en código:
int x=5;
//Bunch of code
cin>>y;
cout<<x+1;
¿Cómo funciona el programa en cada una de las máquinas sabe qué dirección va a contener el valor 5, para mantener el valor inputed, añadir 1 al valor que tiene ahora y finalmente imprime ese mismo valor.
--João
MUCHAS GRACIAS. Tuviste el problema de explicarme el código asm interno. No solo respondiste a mi pregunta, sino que también satisfizo mi curiosidad y me hizo querer aprender a ensamblar. Felicitaciones a usted Sr. –
Una cosa más si no es demasiado pedir. ¿Significan esas compensaciones por ejemplo:% ebp -12 = menos 12 direcciones que cuentan desde la base? –
@ JoãoSilva si% ebp es 0xffffcfe8, la dirección de c será 0xffffcfe8 - 4 = 0xffffcfdc, si eso es lo que está preguntando. – kharvd