Belajar Bahasa Pemrograman Assembler di GNU/Linux

Saturday, January 14, 2017

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.

2. 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

3. 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).
4. ketik di terminal : 
ld -o HelloWorld HelloWorld.o
5. Kemudian jalankan di terminal : 
./HelloWorld
Oke sekian tutorial singkat kali ini, jika ada yang ingin ditanyakan silahkan komentar.

Artikel Terkait Assembly ,Programming

1 comment: