Indonesia Homesite - Bahasa Assembler - Akses Memory
 
 
 
 
Tulisan Dasar Cracking
Selamat Datang................. Cracker..........
Bahasa Assembler :

Akses Memory
Untuk mengakses memori, kita bisa menggunakan 4 register: BX, SI, DI, BP.
Kombinasi register ini di dalam lambang [ ], kita dapat mendapatkan lokasi memori berbeda. Kombinasi ini didukung (mode alamat):

[BX + SI]
[BX + DI]
[BP + SI]
[BP + DI]
[SI]
[DI]
d16 (hanya variable offset)
[BX]
[BX + SI] + d8
[BX + DI] + d8
[BP + SI] + d8
[BP + DI] + d8
[SI] + d8
[DI] + d8
[BP] + d8
[BX] + d8
[BX + SI] + d16
[BX + DI] + d16
[BP + SI] + d16
[BP + DI] + d16
[SI] + d16
[DI] + d16
[BP] + d16
[BX] + d16

d8 - menunjuk pada 8 bit yang dipindah.

d16 - menunjuk pada 16 bit yang dipindah.

Perpindahan bisa merupakan suatu offset atau nilai variabel, atau bahkan kedua-duanya. Itu semua tergantung compiler untuk mengkalkulasi nilai tunggal.

Perpindahan dapat terjadi di dalam atau di luar lambang [ ], compiler menghasilkan kode mesin yang sama untuk kedua kemungkinan.

Perpindahan adalah Signed nilai, maka kedua-duanya dapat positif atau negatif.

Pada umumnya compiler berhati-hati sekitar perbedaan antara D8 dan D16, dan menghasilkan kode mesin yang diperlukan.


Contoh, mari kita berasumsi bahwa Ds= 100, Bx= 30, Si= 70.
Yang mengikuti mode alamat: [Bx+ SI]+ 25
adalah yang dihitung oleh prosessor pada alamat phisik ini : 100* 16+ 30+ 70+ 25= 1725.

Biasanya DS segmen register digunakan untuk semua mode kecuali yang mempunyai BP register, untuk ini < B>SS segmen register digunakan.

Ada satu cara mudah untuk mengingat semua kombinasi dengan penggunaan tabel ini:


kamu dapat membentuk semua kombinasi dengan pengambilan hanya satu item dari masing-masing kolom atau melompati kolom dengan tidak mengambil apapun dari itu. Seperti anda lihat Bx dan Bp tidak pernah berkaitan. Si dan Di juga tidak. Ini adalah contoh mode alamat yang benar: [Bx+5].

Nilai didalam segment register (C, D, S, E) disebut "Segment",
dan nilai didalam register umum (BX, SI, DI, BP) disebut "Offset".
Ketika DS berisi nilai 1234H dan SI berisi nilai 7890H itu dapat juga direkam seperti 1234:7890. Alamat phisik akan menjadi 1234h* 10h+ 7890h= 19BD0h.

Dalam menerjemahkan tipe data,awalan ini harus digunakan:

BYTE PTR - untuk byte.
WORD PTR - untuk word (dua bytes).

Contoh:
 BYTE PTR [ BX]; byte akses.
 atau
 WORD PTR [ BX]; word access.
Emu8086 mendukung awalan pendek:

b. - untuk BYTE PTR
w. - untuk WORD PTR

kadang-kadang compiler dapat mengkalkulasi jenis data secara otomatis.

WebMaster
Terus      Kembali
Komentar dan Mailing List
Crack One Software Every Day Make You The Real Cracker