2010-03-09 100 views
1

我知道一个字符串,你可以简单地做你如何推动与内联汇编

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

但是,有没有办法做到这一点在装配部分?

_asm { push "lol" }这来了一个编译器错误

我是一个初学者,是很好的:P

+0

平台/架构/编译器? – dirkgently 2010-03-10 00:16:11

+0

Windows 32位x86 C/C++ – Dnaiel 2010-03-10 00:19:11

+1

您不能在C++内联汇编中声明变量。 – 2010-03-10 15:05:39

回答

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

那你会怎么做,在MASM,不知道的确切语法内联汇编。但是有一个很大的区别。第一种方法将“lol”字符串存储在exe的数据部分中,而内联版本则将其存储在代码部分中。对于一些字符串,这不是什么大问题。

+0

有没有办法在visual C++中做到这一点? “错误C2400:'操作码'中的内联汇编程序语法错误;找到'常量'” – Dnaiel 2010-03-10 00:42:42

+0

您不能在内联汇编程序中使用MASM指令。请参阅http://msdn.microsoft.com/en-us/library/h70hd396(VS.71).aspx – zebrabox 2010-03-10 13:14:09