2010-03-09 4 views
1

Je sais que vous pouvez simplement faireComment vous pousser une chaîne avec assemblage en ligne

char msg[] = "lol"; _asm { push msg }

Mais est-il un moyen de le faire dans la pièce d'assemblage?

_asm { push "lol" } Cela vient avec une erreur du compilateur

Je suis un débutant, agréable: P

+0

Plate-forme/Architecture/Compilateur? – dirkgently

+0

Windows 32bit x86 C/C++ – Dnaiel

+1

Vous ne pouvez pas déclarer des variables dans un assemblage en ligne C++. –

Répondre

1
call @F 
db 'lol',0 
@@: 

Voilà comment vous le feriez dans MASM, pas sûr de la syntaxe exacte assemblage en ligne. Mais il y a une grande différence. La première méthode stocke la chaîne "lol" dans la section de données de l'exe, tandis que la version inline le stocke dans la section de code. Pour quelques cordes ce n'est pas un gros problème.

+0

Existe-t-il un moyen de le faire en C++ visuel? msgstr "erreur C2400: erreur de syntaxe de l 'assembleur inline dans' opcode '; found' constant '" – Dnaiel

+0

Vous ne pouvez pas utiliser les directives MASM dans l' assembleur inline. Voir http://msdn.microsoft.com/en-us/library/h70hd396(VS.71).aspx – zebrabox

Questions connexes