Esta á uma dica simples de como usar a linguagem Assembly com C.
Como um exemplo vale mais que mil palavras, lá vai:
#include <stdio.h>
int twice ( int ) ;
void main ( void )
{
int p ;
p = dobra( 20 ) ;
printf ( "%d", p ) ;
}
int dobra( int q )
{
q*=2;
asm {
mov ax, q
add ax, 10
pop bp
ret
}
}
É importante observar que a linguagem Assembly varia de acordo com a máquina usada. Este é somente um exemplo prático.
[1] Comentário enviado por
FelipeAbella em 09/11/2005 - 15:15h:
aqui não funcinou no gcc.
[2] Comentário enviado por
EnzoFerber em 19/05/2006 - 21:39h:
Qual compilador vc usou?
[3] Comentário enviado por
Ablankzin em 24/04/2007 - 13:11h:
o que exatamente este code faz? e com que eu posso compilar ele?
[4] Comentário enviado por
EnzoFerber em 24/04/2007 - 14:27h:
#include <stdio.h>
int dobra(int q){
__asm__("mov %%ecx, %%eax": : "c"(q*2));
}
int main(void){
printf("10 x 2: %d\n", dobra(10));
return 0;
}
O codigo acima compilou e rodou no GCC 3.3.4 do meu Slackware, e compilou e rodou tranquilo no GCC do DEV-C++ 4.9.9.2 do ®uindows
[5] Comentário enviado por
promano em 31/03/2008 - 19:19h:
/*O prototipo da funcao ta em ingles e a função dobra ta em pt:D... Faz assim:*/
#include <stdio.h>
int twice ( int ) ; /* Troquem a palavra "twice" para "dobra" ou facam como o amigo acima e coloquem a funcao dobra antes da main, apagando o prototipo "twice". */
void main ( void )
//T+