2010-03-09 55 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