Halaman

Selasa, 01 September 2020

TUTORIAL 1 : DASAR BAHASA ASSEMBLY WINDOWS 32bit MASM32 CONSOLE UNTUK PEMULA

Alhamdulillahirabbilalamin, pada saat ini kita semua masih diberi kesempatan untuk terus belajar, kita niatkan mudah-mudahan apa yang kita lakukan bernilai ibadah. Pada kesempatan ini saya akan menjelaskan tentang bahasa pemrograman assembly. Target pembaca adalah pemula, jika sudah memiliki pengalaman dalam bahasa pemrograman lain maka itu akan sangat membantu dalam mengikuti tutorial ini.

 Adapun peralatan yang dibutuhkan kali ini yaitu: 

  1. System operasi : WindowsXp sampai Windows10 bisa
  2. Masm32
  3. 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

Sekian , terimakasih.




Tidak ada komentar:

Dasar

TUTORIAL 1 : DASAR BAHASA ASSEMBLY WINDOWS 32bit MASM32 CONSOLE UNTUK PEMULA

Alhamdulillahirabbilalamin, pada saat ini kita semua masih diberi kesempatan untuk terus belajar, kita niatkan mudah-mudahan apa yang kita l...

Postingan Populer