Friday 18 April 2014

Program bahasa Assembly Hello World



   Disini saya akan menjelaskan atau lebih tepatnya mempraktekkan langsung bagaimana membuat program sederhana dengan menggunakan bahasa assembly di OS linux yaitu menggunakan nasm
     nasm merupakan compiler untuk bahasa pemrograman assembly pada sistem operasi linux, dan perlu kita ketahui kalau di sistem operasi windows digunakan tasm (turbo assembly). dan saya menganggap anda sudah mengerti dasar-dasar bahasa Assembly.

•  Ok pertama-tama mari kita install nasm dengan menggunakan Terminal
 


  Setelah itu kita buat program sederhana menggunakan aplikasi editor, kali ini saya menggunakan gedit, lalu ketik program berikut:


  ; section text khusus buat code
  section .text

  global _start

  _start:
  ; systemcall => write(1,msg,len)
  mov edx,len   ; panjang string dimasukkan dalam register EDX
  mov ecx,msg  ; alamat memori yang menyimpan string dimasukkan dalam register ECX
  mov ebx,1     ; file descriptor (1=stdout=defaultnya console) disimpan dalam   register EBX
  mov eax,4     ; Nomor syscall 4 adalah fungsi sys_write()
  int 0x80        ; panggil system call dengan interrupt 80 hexa.

  ; systemcall => exit(0)
  xor ebx,ebx     ; membuat EBX menjadi 0 sebagai return code ketika exit
  mov eax,1     ; nomor syscall 1 adalah fungsi exit()
  int 0x80      ; panggil system call dengan interrupt 80 hexa.

  section .data ; section data khusus buat data/variable
  msg db "Hello, World!",0xa ; String diikuti dengan 0xA yaitu new line \n.
  len equ $ - msg  ; Panjang string didapat dengan mengurangi address di baris ini dengan alamat string.

  •   Ketika sudah selesai mengetik program diatas, lalu simpan di folder yang anda inginkan dengan file dengan format .asm (contoh : hello.asm), dan kali ini saya akaan menyimpan di Documents.
  •  Kemudian lakukan compile program dari source *.asm ke *.o sekalian output dari program diatas yaitu dengan cara:


 
Selamat, anda telah berhasil membuat program program sederhana dengan output Hello World dalam bahasa Assembly

0 comments:

Post a Comment