|
YASM dalah compiler bahasa assembler yang didesain secara modular, sehingga dapat digunakan untuk membuat objek binari (COFF) untuk platform Windows (Win32/64), Linux (ELF32/64) dan Machintosh (Mach-O 32/64). YASM merupakan compiler baru yang direcode ulang dari NASM (Netwide Assembler) dibawah lisensi BSD yang telah direvisi.. Compiler ini mendukung sintak NASM dan GAS (GNU Assembler), jadi bagi yang sudah terbiasa coding menggunakan NASM maupun GAS akan lebih mudah beradaptasi :). Apa sih kepanjangan dari YASM? Apa perlu tahu? YASM memiliki beberapa kepanjangan aneh seperti halnya pada nama unik aplikasi-aplikasi opensource pada umumnya. YASM is: - Yes, it's an ASseMbler
- Your fAvorite aSseMbler
- Yet Another aSseMbler
- whY An aSseMbler
Disini saya akan memberikan contoh cara kompilasi menggunakan YASM. Tulis code berikut:
;
; YASM holla
; written by anvie
;
global _holla
extern _MessageBoxA@16
extern _ExitProcess@4
_holla:
push 0
push szJudul
push szPesan
push 0
call _MessageBoxA@16
push 0
call _ExitProcess@4
retn
szJudul db 'hi',0
szPesan db 'holla dunia',0
;---- selesai ----
lalu kompilasi dengan menuliskan pada jendela console berikut:
yasm -f Win32 -o msg.obj -rnasm -pnasm
Hasilnya adalah file COFF "msg.obj", tinggal dilinking untuk mendapatkan executable binary-nya.
Oia, jangan kaget kalo kamu hanya akan mendapati satu file YASM.exe aja karena YASM hanya sebagai kompiler dan bukan linker, jadi hasil kompilasi dari YASM hanya berupa file COFF saja. Terus untuk membuat file executable nya gimana dong? Kamu bisa menggunakan linker-linker yang sudah ada, salah satunya adalah linker yang ada pada paketan MASM dwonload di: http://www.masm32.com/ Atau yang ada pada paketan Micros*ft Windows SDK download di: http://www.microsoft.com/downloads/details.aspx?FamilyID=e6e1c3df-a74f-4207-8586-711ebe331cdc&displaylang=en
Untuk pengguna GNU compiler bisa menggunakan ld yang ada pada paketan GCC.
Lebih lanjut tentang YASM coba kunjungi:
http://www.tortall.net/projects/yasm/
http://en.wikipedia.org/wiki/Yasm
ok sekian dulu, see you to the next tutor :)
anvie. |