2014-10-18 91 views
3

我正在研究MSIL(CIL)代碼着色器,儘管我不熟悉MSIL。瞭解MSIL中的點(CIL)關鍵字

我在Common Language Infrastructure (CLI)中找到了所有關鍵字的列表。

這些關鍵字包括諸如add,.file,conv.i4unaligned.之類的東西。

我正在努力一點點關鍵字的一部分。我非常確定需要成爲關鍵詞的一部分,因爲我不認爲像i4這樣的關鍵詞本身就是關鍵字。而且我很確定我希望某些關鍵字的開頭處的點是關鍵字的一部分。

但是少數有尾點的例如最後一個呢?尾部點是否是關鍵字的一部分?

回答

4

點是這些說明的一部分(我不知道原因)。有幾個其他前綴指令,例如unaligned.,volatile.,constrained.,readonly.tail.。 (我不確定是否列出了所有這些文件,但重點在於,解析器必須識別這些文件)。

volatile.的文檔明確提到,在它的指令之前至少有一個空格必須跟在它之後適用。例如:

volatile. ldind.i4 // Correct 

volatile.ldind.i4 // Syntax error 

這些是從塞爾Lidin的專家.NET 2.0 IL彙編(這是相當多的權威參考IL)。

+0

是的,我從我引用的來源有一個完整的列表。如果像我們說的那樣,必須要有一個空間,那麼讓我的解析器識別它們並不成問題。只是想確保正確的結果。謝謝。 – 2014-10-18 20:52:24

+0

是的,利丁的書中提到ILASm語法要求前綴指令與下一條指令 至少用一個空格符號分開。這適用於所有的前綴指令。 – xxbbcc 2014-10-18 20:58:40