LINUXSEC

Belajar Bahasa Pemrograman Assembler di GNU/Linux

Setelah sebelumnya kita membahas register bahasa assembly, kali ini kita akan membahas pemrograman assembly di GNU/Linux. Kenapa saya pilih Linux ? Karena untuk hal tertentu, lebih mudah untuk dilakukan di Linux.

Linux yang saya pakai adalah Kali Linux. Linux lain juga mirip-mirip.

  1. Pertama-tama, kita cek apakah software Netwide Assembler (NASM) sudah terinstall.

Jika belum, ketik :

sudo apt-get install nasm

Kemudian lakukan update Linux, untuk memastikan Linux telah menyiapkan file-file yang dibutuhkan oleh NASM.

Jalankan perintah apt update, apt upgrade secara bertahap.

  1. Selesai install NASM, kita bisa mulai mengetik script asm di teks editor apapun.

section .text    ;kode memulai bagian text yang akan dijadikan program

global _start    ;must be declared for linker/loader dynamic (perintah ld di Linux)

_start:                ;tells linker entry point

mov eax, 4        ;system call number (system_write) / perintah untuk menulis.

;Lihat wiki dos int 21h service, 04h adalah auxilary output

mov ebx, 1       ;file descriptor (stdoout)

mov ecx, msg ;variable/constanta message to write (untuk ditulis)

mov edx, len   ;message length

int 0x80            ;call kernel / panggil kernel/interrupt

mov eax, 1 ;system call number (system_exit) / untuk mengakhiri program

int 0x80           ;call kernel / panggil kernel/interrupt

section.data

msg db ‘Hello, world !’, 0xa ;jumlah byte dari string yang ingin dicetak =

;0xa = A hexadecimal = 13 decimal

  1. Kemudian dari file teks HelloWorld.asm, kita ubah menjadi file Executable and Linkable Format (ELF) dengan mengetikkan perintah berikut ini :

nasm -f elf   HelloWorld.asm untuk Linux 32 bit

nasm -f elf64 HelloWorld.asm untuk Linux 64 bit

nasm -f elf, artinya kita pilih bentuk output file (select an output format) menjadi Executable and Linkable Format (ELF).

  1. ketik di terminal :
ld -o HelloWorld HelloWorld.o
  1. Kemudian jalankan di terminal :
./HelloWorld

Oke sekian tutorial singkat kali ini, jika ada yang ingin ditanyakan silahkan komentar.

Komentar

    Tinggalkan Komentar

    Silahkan tinggalkan komentar jika ada masukan, pertanyaan, kritik ataupun dukungan. Namun pastikan untuk berkomentar secara sopan.