Lucas B. Luna Escreveu:
Desculpa manolo, obrigado pela ajuda mas não deu certo =/ O comando NÃO gerou código em asm...
Manolo não... Fred!
Consulte o manual do compilador (ou cl /? na linha de comando).
Quote:
E o segundo post foi meio confuso

Isso não faz sentido, x e y são variáveis locais da função f(int x, int y). Você não pode usá-las assim.
EDIT:
Agora eu modifiquei seu código e deu pra ver o que cê tava falando:
Code:
#include <iostream>
void f(int x, int y)
{
x = y;
}
void main()
{
int x = 10;
int y = 20;
f(x,y);
std::cout << x << '\n' << y << '\n';
loop: goto loop;
}
Mas mesmo assim não sakei por que X ainda continua com 10 e Y com 20. E também não entendi como isso vai ajudar

Ué?! Você mesmo respondeu a sua própria pergunta...
x e y são variáveis locais à função f()... Quando você faz a chamada a f(), as variáveis x e y, locais à função main() são
copiadas para as variáveis x e y, locais à função f(). Qualquer alteração de x e y dentro da função f() só ocorrerá dentro de f(). Se quiser alterar o valor do parâmetro é mais prático passa-lo como ponteiro:
Code:
void f(int *x, int y)
{ *x = y; }
int main(void)
{
int x = 10, y = 20;
f(&x, y);
printf("x = %d\n", x);
return 0;
}
Entendeu, Lucas?
PS: Com o gcc você pode gerar o código em asm assim:
Code:
gcc -S -masm=intel test.c
Ou usar o g++, se for usar ios.