Rabu, 18 November 2009

Sekilas Tentang Assembler

Rabu, 18 November 2009

Sekilas tentang bahasa mesin (assembler/assembly)

5 Bagian Penting Dalam Mempelajari Bahasa Mesin (Assembler).

1.Registers
2.Stack
3.Common Instructions
4.Conditional Jumps
5.Bitmanipulation Instuctions.

Registers
Registers terdiri dari 4 jenis yaitu, general Purpose Registers, Stack Registers, Segment Registers, dan Index Registers. Dalam Bahasa pemograman tingkat tinggi dimana nilai register tersebut disimpan dalam CPU dan dapat dimanipulasi.

General Purpose Registers
Terdiri dari EAX, EBX, ECX, EDX ini adalah Register pada Arstitek Prosesor 386 dan yang lebih besar seperti 486 dan 586 ini adalah Registers yang yang bernilai 32 bits.

Stack Registers
EBP dan ESP adalah Stack Register yang berfungsi untuk Menyimpan nilai Sementara. Kita dapat menyimpan data sementara dengan Instruksi PUSH dan dapat di Aksens dengan Instruksi POP. Stack ini mempunyai ketentuan “Masuk Terakhir Duluan Keluar”.

Segment Registers
Terdiri dari CS, DS, ES, FS, GS.
CS ; Code Segment adalah Blok dimana Lokasi data berada
DS ; Data Segment adalah Blok dimana Lokasi data diakses “Jika berhubungan dengan String”
ES ; Extra Segment adalah Blok Extra yang bisa dijadikan Data segment.

Index Registers
Index Registers adalah “pointer registers” yang sering digunakan yang melibatkan string. Terdiri dari 2 Registers ESI dan EDI dalam 32 bits.
SI ; Source Index sering digunakan pada operasi string sebagai Sumber (Source)
DI ; Destination Index sering digunakan pada operasi string sebagai Hasil atau Tujuan.
NB : EBX juga bisa digunakan sebagai Index Registers dalam Instruksi “Offset”.

Stack.
Untuk Stack biasanya sudah diatur oleh CPU dalam Instruksi terhadap Sistem Operasi itu sendiri.


Coomon Instructions
MOV dest, source
instruksinya simple memindahkan (move) value ke lokasi yang terdapat dalam memory (register atau variable)

aDD dest, value
instruksinya simple menambahkan value dan disimpan di des

DEC dest
mengurangi value tertentu (register, variable atau apa saja)

CMP source, dest
membandingkan isi source dengan dest

JMP location
"JUMPS (loncat) ke lokasi xxx

MOVSB atau MOVSW
"Move' (memindahkan, meng-copy isi) byte (MOVSB) atau word (MOVSW) dari DS:SI ke
ES:DI yang ditambah dari value SI

LODSB atau LOWDSW
Load nilai byte atau word dari DS:Si dan simpan di AL (LODSB) atau AX (LODSW) akan ditambahkan ke SI

STOSB atau STOSW
Mengambil value dari AL (STDSB) atau AX (STDSW) dan tempatkan di DS:SI. akan ditambah ke SI

REP
Ulang instruksi sesuai nilai CX (ECX jika 32 bit) register. REP disimpan didepan MOVSB,LODSB atau STOSB (atau didepan instruksi DS:SI jika word value) hal ini akan membuat program mengulang secara automatis

CALL procedure
Memanggil prosedur suatu alogaritma/ instruksi yang diakhiri oleh REt (return)

Bitmanipulation Instructions
Pertamatama kita harus mempelajari tentang byte, sebuah byte yang konsisten terdiri dari 8 bits yang ber -value jika bukan ) ya 1.
ada beberapa instruksi yang sering kita temukan dalam melakukan reverse suatu aplikasi
antara lain
XOR. Instruksi ini sangat penting, dan harus di ketahui,
arti dari "XOR 88,65" angka 88 adalah nilai dec dari huruf 'X' dan 65 nilai dari decdari huruf 'A'


Related Posts :

0 komentar:

Posting Komentar

 

Kuliah Amik JTC is proudly powered by Blogger.com | Template by Blog Zone