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