Bagikan melalui


Gambaran Umum Perakitan Sebaris

Khusus Microsoft

Perakit sebaris memungkinkan Anda menyematkan instruksi bahasa perakitan dalam program sumber C dan C++ Anda tanpa langkah-langkah perakitan dan tautan tambahan. Perakit sebaris sudah terintegrasi ke dalam kompiler, sehingga Anda tidak memerlukan perakitan terpisah seperti Microsoft Macro Assembler (MASM).

Perakit sebaris tidak memerlukan langkah-langkah perakitan dan tautan terpisah, sehingga lebih nyaman daripada perakit terpisah. Kode rakitan sebaris dapat menggunakan variabel C atau C++ atau nama fungsi apa pun yang ada dalam cakupan, sehingga mudah untuk mengintegrasikannya dengan kode C dan C++ program Anda. Dan karena kode rakitan dapat dicampur dengan pernyataan C dan C++, itu dapat melakukan tugas yang rumit atau tidak mungkin di C atau C++ saja.

Kata kunci __asm memanggil perakit sebaris dan dapat muncul di mana pun pernyataan C atau C++ legal. Perakit sebaris tidak dapat muncul dengan sendirinya. Harus diikuti oleh instruksi perakitan, sekelompok instruksi yang diapit kurung kurawal, atau, setidaknya, sepasang kurung kurawal kosong. Istilah "__asm blok" di sini mengacu pada instruksi atau sekelompok instruksi, baik dalam kurung kurawal atau tidak.

Kode berikut adalah blok sederhana __asm yang diapit kurung kurawal. (Kode adalah urutan prolog fungsi kustom.)

// asm_overview.cpp
// processor: x86
void __declspec(naked) main()
{
    // Naked functions must provide their own prolog...
    __asm {
        push ebp
        mov ebp, esp
        sub esp, __LOCAL_SIZE
    }

    // ... and epilog
    __asm {
        pop ebp
        ret
    }
}

Atau, Anda dapat menempatkan __asm di depan setiap instruksi perakitan:

__asm push ebp
__asm mov  ebp, esp
__asm sub  esp, __LOCAL_SIZE

Karena kata kunci __asm adalah pemisah pernyataan, Anda juga dapat menempatkan instruksi perakitan pada baris yang sama:

__asm push ebp   __asm mov  ebp, esp   __asm sub  esp, __LOCAL_SIZE

END Khusus Microsoft

Lihat juga

Perakitan Sebaris