Adapun peralatan yang dibutuhkan kali ini yaitu:
- System operasi : WindowsXp sampai Windows10 bisa
- Masm32
- Notepad++
Saya akan mulai dengan contoh kode program, kemudian membahas lebih dalam tentang bahasa assembly ini.
Berikut ini kode programnya :
.386
.MODEL Flat,STDCALL
option casemap:none
include C:\masm32\include\windows.inc
include C:\masm32\include\kernel32.inc
includelib C:\masm32\lib\kernel32.lib
STD_OUTPUT_HANDLE EQU -11
.DATA
isi_pesan db "Halo Console 1", 0
panjang_pesan dd 15
.DATA?
consoleOutHandle dd ?
bytesWritten dd ?
.code
start:
push STD_OUTPUT_HANDLE
call GetStdHandle
mov [consoleOutHandle],eax
push 0
push offset bytesWritten
push panjang_pesan
push offset isi_pesan
push consoleOutHandle
call WriteConsole
push 0
call ExitProcess
end start
Oke, itu kode programnya. Sekarang mari persiapkan peralatan.
1. System windows
2. Masm32
3. Notepad bisa juga notepad++
Cara compile :
C:\masm32\bin\ml.exe /c HaloConsole1.asm
Cara link :
C:\masm32\bin\link.exe /subsystem:console /entry:start HaloConsole1.obj
Jika pada saat link muncul pesan error:
warning LNK4033: converting object format from OMF to COFF
LINK : error LNK2001: unresolved external symbol _start
error LNK2001: unresolved external symbol _GetStdHandle@4
error LNK2001: unresolved external symbol _WriteConsoleA@20
error LNK2001: unresolved external symbol _ExitProcessA@4
fatal error LNK1120: unresolved externals
itu berarti compiler masm32 yang anda gunakan mengompilasi file assembly menjadi file object menggunakan format OMF secara default. Format OMF adalah format standard dari intel Object Module Format. Sedangkan untuk windows, tim pengembang microsoft NT mendesain code yang tidak hanya bisa digunakan intel tapi juga vendor cpu yang lain. Tim pengembang microsoft NT memilih menggunakan COFF Common Object File Format yang kemudian menjadi standar untuk Pengembangan microsoft Win32 development tool.
Untuk mengatasi error tersebut compile dengan memasukkan option COFF secara langsung dengan cara :
C:\masm32\bin\ml.exe /c /coff HaloConsole1.asm
Selengkapnya di video berikut :
Pembahasan lebih mendalam tentang assembly x86 disini https://re-pinrang.blogspot.com/2020/10/tutorial-singkat-dasar-assembly-x86.html
Tidak ada komentar:
Posting Komentar