Welcome Guys

Penggemar :D

General Instructions of Assembly

Written By pcbolong on Sunday, March 8, 2009 | 1:39 PM

1. MOV
Instruksi MOV digunakan untuk mentransfer data dari satu lokasi ke lokasi tertentu (dari sumber ke tujuan).
Contoh penggunaan MOV:
MOV src,dest #sintaks AT&T
MOV dest,src #sintaks Intel

Beberapa aturan penggunaan instruksi MOV :
A. MOV tidak dapat mengkopikan data antarmemori secara langsung, seperti :
MOV $A,$B #sintaks AT&T
penyelesaiannya yaitu menggunakan register general purpose sebagai operan :
MOV $A,%ax #gneral purpose register sebagai perantara
MOV %ax,$A #memindah isi register general purpose ke memori
B. Tidak dapat melakukan pengkopian data antar register secara langsung, seperti :
MOV %ds,%es #sintaks AT&T
penyelesaiannya yaitu sama dengan atas :
MOV %ds,%ax #register general purpose sebagai operan
MOV %ax,%ds #memindahkan isi register general purpose ke memori
C. Tidak bisa data immediete ke register secara langsung, seperti :
MOV $0×41,%es #sintaks AT&T
penyelesaiannya adalah sebagai berikut :
MOV $0×41,%ax #register general purpose sebagai operan
MOV %ax,%es #memindahkan isi register general ke register segmen

#catatan : operan-operan juga harus memiliki ukuran yang sama,jika register sumber AX (berukuran word), maka tujuan juga berupa register atau memori berukuran word juga.

2. ADD
Instruksi ADD digunakan untuk menambahkan integer
Contoh penggunaannya yaitu :
ADD $4, %eax #eax=eax+4 sintaks AT&T
ADD al,ah #al=ah+al sintaks Intel

3. SUB
Instruksi SUB digunakan untuk mengurangkan integer
Contoh penggunaannya yaitu :
SUB eax,10 #eax=eax-10 sintaks Intel
SUB %edi,%ebx #ebx=ebx-edi sintaks AT&T

4. INC (increment) dan DEC (decrement)
Digunakan untuk melakukan incremen (+1) dan decrement (-1).
Contoh penggunaan yaitu :
INC %eax #eax=eax+1
DEC %ebx #ebx=ebx-1


Enough for today....to be continued!
1:39 PM | 0 comments | Read More

pnjelasan hello world

Written By pcbolong on Friday, March 6, 2009 | 11:44 AM

Assallamu'alaikum...nah lo...ketemu lagi dah...
langsung aja, soalnya waktune mepet...ntar jam 12 jaga warnet.hehe......sekarang aku mau nerangin script "hello world" yang kemaren.....ini nih penjelasane...

global _start --> mendeklarasikan _start sebagai linker (ld).
section .data --> penamaan section (.data) untuk format elf dan HPPA
hello db "hello world!", 10 --> string yang akan ditampilkan, yaitu "hello world!"
length equ $-hello -->panjang string
section .text -->sama seperti section .data
_start: -->memanggil linker _start yang sudah didefinisikan diatas
mov eax, 4 ;nulis ke file
mov ebx, 1 ;menangani fungsi STDOUT
mov ecx, hello ;nulis pesan yg ditmplkan ke register
mov edx, length ;ukuran pesan
int 80h ;mejalankan syscall
xor ebx, ebx ;send 0 sebagai "exit code"
mov eax,1 ;terminate process
int 80h ;menjalankan syscall

nahh...ngono kui ketoke penjelasan kasarnya...untuk lebih jelasnya bisa sms ke 7777 nanti akan saya bales langsung dari hp saya.hehehehehe.....
becanda...
mmmmm....masih seperempat jam lagi....belajar lagi ah...

wassalam
11:44 AM | 0 comments | Read More

Hello World!!

- Pertama megang nasm, aku pengen bisa jalanin "hello world", kaya kalo pertama kali belajar bahasa pemrograman. nah...sulit banget cari referensi buat nasm, karena banyak bgt jenis2 nya assembly (nasm, asm, tasm, etc).
- akhirnya ketemu juga satu artikel yang lumayan menjelaskan. nih disini nih gue dapetnya langkah2 dan skript buat nampilin hello world :
http://www.daniweb.com/forums/forum125.html
-langsung aja, ni langkah2 bikin helloworld :
buka gedit, vi, atau vim. pokoknya text editor,
phlonthos@phlonthos:~$ gedit halo.asm
trus ketikkan code dibawah ini.


global _start
section .data
hello db "hello world!", 10
length equ $-hello
section .text
_start:
mov eax, 4 ;nulis ke file
mov ebx, 1 ;STDOUT handle
mov ecx, hello ;pesan yg ditmplkan
mov edx, length ;ukuran pesan
int 80h ;mejalankan syscall
xor ebx, ebx ;send 0 sebagai "exit code"
mov eax,1 ;terminate process
int 80h ;menjalankan syscall


nah trus simpan dengan extensi .asm, ex:halo.asm
trus buka terminal, ketikkan: (nama file yg kubuat halo.asm)
phlonthos@phlonthos:~$ nasm -f elf halo.asm
hehe..penjelasan mengenai perintah diatas, aku rapatio donk...jadi ku jelasin ntar aja ya.tak googling dulu.
nah habis perintah di atas, ketik lagi ini:
phlonthos@phlonthos:~$ ld -o halo halo.o
terus ini :
phlonthos@phlonthos:~$ ./halo
nah keluar deh outputnya:
hello world!
nah segitu dulu yak....ntar kulanjutin lagi. otre????
wassallam
11:42 AM | 0 comments | Read More

Rencana Assembly

Mau belajar assembly dalam waktu 1 minggu, buat bikin program skripsi. Nah 1 minggu itu aku harus bisa, minimal logika dan dasar2 perintahnya yang diperlukan buat bikin oS. udah bisa sih, tapi belum lancar. Langsung saja.......

- Cari cari referensi tentang nasm di linux, nyarinya di internet
- cek nasm ama gcc udah keinstall belom, caranya:
phlonthos@phlonthos:~$ dpkg -l | grep nasm
versi nasm yg keinstall di laptop gue versi 0.98.38-1.2build1 General-purpose x86 assembler
phlonthos@phlonthos:~$ dpkg -l | grep gcc
versi gcc yang keinstall 4:4.1.2-9ubuntu2
nah itu dulu buat hari ini yang kelam dan mendung nih...ujan deres book...
11:36 AM | 0 comments | Read More