我最近想擴大我的C語言的知識,我碰到的是用於發射方案,可能發出一個字節。在C編程中,「發射」是做什麼的?
__declspec(naked) void marker_begin() {
__asm {
_emit 0x51;
_emit 0x21;
_emit 0x1A;
_emit 0x14;
_emit 0x2C;
_emit 0x5B;
}
}
那會是什麼用的? 在此先感謝。
我最近想擴大我的C語言的知識,我碰到的是用於發射方案,可能發出一個字節。在C編程中,「發射」是做什麼的?
__declspec(naked) void marker_begin() {
__asm {
_emit 0x51;
_emit 0x21;
_emit 0x1A;
_emit 0x14;
_emit 0x2C;
_emit 0x5B;
}
}
那會是什麼用的? 在此先感謝。
C程序是通過使用_asm
關鍵字執行聯彙編代碼。 _asm是MSDN
中使用的Microsoft特定關鍵字。 __asm
關鍵字調用內聯彙編器。它後面必須有一個彙編指令,一組用大括號括起來的指令,或者至少是一對空括號。
_emit
僞指令與MASM
的指令DB
相似。 _emit
是MSDN
特定僞指令。 _emit
用於定義當前文本段中當前位置的單個即時字節。 _emit
一次只能定義一個字節,並且只能定義文本段。
非常感謝!我會讚揚你,但我沒有聲望。 – AdamGreenhill 2013-05-09 01:36:17
這看起來像內聯彙編給我。 – Musa 2013-05-03 03:59:41
@Musa謝謝,你絕對是對的。內聯彙編器中「發射」是做什麼的? – AdamGreenhill 2013-05-03 04:10:52
db是類似的指令,請看這裏: http://stackoverflow.com/questions/6916050/what-is-the-equivalent-of-emit-in-masm – 2013-05-03 04:23:31