2017-02-01 54 views
0

我知道__asm塊可以訪問在這些塊之外聲明的變量,但我想要做的是找到一種方法來訪問塊外部__asm塊中聲明的變量。我所有關於C和C++的知識都表明,這應該是不可能的,因爲C和C++在{}塊中的範圍都是可以的。有沒有辦法做到這一點,或者我是否需要在__asm塊之外聲明這些變量?我可以從__asm塊外部訪問__asm變量嗎?

PS:我無法從我的任何搜索中找到任何與此問題相關的答案。

+0

我想我們假設你正在使用微軟的Visual C++? –

+0

是的,但不是其他編譯器可用的內聯程序集? –

+1

它在其他編譯器中可用(但不是必需的),但並不總是以與MSVC++兼容的方式提供。例如,在GCC中,彙編語言模板與MSVC++的模板非常不同。 –

回答

1

答案似乎是否

微軟具體

雖然__asm塊可以引用C或C++的數據類型和目的,它不能與MASM指令或運營商定義的數據對象。具體而言,您不能使用定義指令DB,DW,DD,DQ,DT和DF或運算符DUP或THIS。 MASM結構和記錄也不可用。內聯彙編程序不接受指令STRUC,RECORD,WIDTH或MASK。

END微軟具體

從這裏https://msdn.microsoft.com/en-us/library/h70hd396.aspx

+0

這就是我所害怕的。但是,謝謝。 –