c語(yǔ)言asm函數(shù) 在C 中,asm關(guān)鍵字是做什么用的,能幫我舉個(gè)例子嗎?
在C 中,asm關(guān)鍵字是做什么用的,能幫我舉個(gè)例子嗎?Microsoft詳細(xì)信息:ASM關(guān)鍵字啟動(dòng)內(nèi)聯(lián)程序集,可以寫入任何C/C法律聲明。它不能單獨(dú)出現(xiàn)。它后面必須跟一條匯編指令、大括號(hào)中包含的一組
在C 中,asm關(guān)鍵字是做什么用的,能幫我舉個(gè)例子嗎?
Microsoft詳細(xì)信息:
ASM關(guān)鍵字啟動(dòng)內(nèi)聯(lián)程序集,可以寫入任何C/C法律聲明。它不能單獨(dú)出現(xiàn)。它后面必須跟一條匯編指令、大括號(hào)中包含的一組指令或一對(duì)空大括號(hào)“ASM block”這里是任何指令或指令組,無論是否在括號(hào)中。
下面的代碼片段是一個(gè)簡(jiǎn)單的括號(hào)uuuasm塊。
uuuu另一種方法是,您可以將它放在每個(gè)匯編指令的前面uuuasm
uuasm mov al,2
uuasm mov dx,0xD007
uuasm out al,dx
因?yàn)閡uasm關(guān)鍵字是語(yǔ)句分隔符。您也可以將匯編指令放在同一行上:
asm mov al,2 asm mov dx,0xD007以上三個(gè)示例生成相同的代碼,但是第一個(gè)樣式(asm塊(括在括號(hào)中)有一些優(yōu)點(diǎn)。括號(hào)可以清楚地將C或C代碼與匯編代碼分開,并避免不必要的重復(fù)。括號(hào)也可以避免歧義。如果你想在這里把C或C語(yǔ)句放在ASM塊的同一行,你必須用括號(hào)括起來。沒有括號(hào),編譯器就不能告訴匯編代碼在哪里停止,也不能告訴C或C代碼從哪里開始。最后,由于方括號(hào)中的文本與原始MASM的格式相同,因此可以輕松地將現(xiàn)有MASM源文件中的文本剪切并粘貼到文件中。
與C和C不同的括號(hào)包含 ASM塊的括號(hào)對(duì)變量的范圍沒有影響。你也可以嵌套,ASM塊,嵌套對(duì)變量作用域沒有影響。