2011-06-02 2 views
1

homme Oh, j'ai encore une autre erreur lors de la compilation du code assembleur en ligne ci-dessous (avec -fasm blocs) sous GCC:erreur de montage en ligne GCC: aucune instruction: `stosd »

_asm 
{ 
    mov ecx, esi 
    shr ecx, 2 
    rep stosd 
}; 

GCC comprend d'autres stos instructions, pourquoi pas accepter stosd ???

+0

quelle version du compilateur utilisez-vous? – ColWhi

+0

Aussi quelle est l'erreur? – ColWhi

+0

Apple GCC 4.2.1, l'erreur est pas une telle instruction: 'stosd '... – Ryan

Répondre

2

voyant votre syntaxe intel, il suffit de choisir la version STOS: REP STOS DWORD PTR:[EDI].

et iirc sous gcc, stosd est appelé stosl.

+0

Merci! REP stosl fonctionne très bien :) – Ryan

1

Une autre façon de résoudre ce problème est de dire à gcc d'utiliser la syntaxe de l'assembly intel avec "-masm = intel".

Questions connexes