MODEL KOMPUTER SECARA SEDERHANA
Keterangan gambar :
- System bus (warna kuning) menghubungkan dengan bermacam - macam komponen komputer.
- CPU merupakan jantung computer, hampir seluruh perhitungan dilakukan didalam CPU.
- RAM merupakan tempat dimana program di loading untuk di eksekusi
1.
CPU (Central Processing Unit)
A.
General Purpose Register
General Purpose Register CPU 8086
mempunyai 8 general purpose register, dimana tiap register mempunyai namanya sendiri-sendiri:
Ø
AX - the accumulator register (dibagi
menjadi AH/AL)
Ø
BX - the base address register (dibagi
menjadi BH/BL)
Ø
CX - the count register (dibagi menjadi
CH/CL)
Ø
DX - the data register (dibagi menjadi
DH/DL)
Ø
SI - source index register
Ø
DI - destination index register
Ø
BP - base pointer
Ø
SP - stack pointer
Tujuan utama dari register adalah untuk menyimpan
angka (variable). Ukuran register diatas adalah 16
bit. Empat general purpose register (AX, BX, CX, DX) dibuat dari dua 8 bit
register yang terpisah, contoh :
Jika AX=011000000111001b, maka AH=00110000b dan AL=00111001b. "H" berarti bagian high dan "L" berarti bagian low.
Karena register berada dalam CPU, mereka lebih cepat dibandingkan
dengan memory.
B.
Segment Register
Ø CS - menunjuk pada segmen yang berisi
program sekarang (current program)
Ø DS - biasanya menunjuk pada segmen dimana variable didefinisikan
Ø ES - register segmen extra, tergantung programmer mendefinisikan penggunaannya
Ø SS - menunjuk pada segmen yang berisi
stack
Segmen register mempunyai tujuan yang sangat khusus, yaitu menunjuk blok
memori yang dapat diakses. Segment register
bekerjasama dengan general purpose register untuk mengakses setiap nilai memory.
Contohnya, jika kita akan mengakses memori pada physical address 12345h (hexadecimal), kita perlu mengeset DS=1230h dan SI=0045h. Dengan cara ini kita dapat mengakses lebih banyak
memory daripada register tunggal yang terbatas
pada nilai 16 bit. CPU membuat kalkulasi dari physical address dengan
mengalikan segment register dengan 10h dan menambahkan general purpose register (1230h
* 10h + 45h = 12345h).
C.
MEMORY ACCESS
Untuk mengakses memory kita dapat
menggunakan 4 register yaitu BX, SI, DI, BP. Register-register tersebut dapat dikombinasikan didalam simbol tanda
kurung kotak [], kita bisa mendapatkan lokasi memori yang
berbeda. Kombinasi ini didukung dengan mode pengalamatan (addressing modes) sebagai berikut:
Ø
d8 - merupakan penggantian nilai yang
terdekat untuk 8 bit signed (contoh: 22, 55h, -1, etc...)
Ø
d16 - merupakan penggantian nilai terdekat untuk 16 bit signed (contoh: 300, 5517h, -259, etc...)
Penggantian dapat menjadi nilai yang terdekat atau offset dari variable atau keduanya. Jika ada beberapa nilai, assembler mengevaluasi semua nilai
tersebut dan mengkalkulasi sebagai nilai terdekat
tunggal. Umumnya compiler memperhatikan perbedaan
antara d8 dan d16 dan men-generate kode mesin
yang diperlukan.
Contoh, diasumsikan DS=100, BX=30, SI=70. Mode pengalamatannya adalah [BX + SI] + 25 yaitu dikalkulasi oleh
processor ke physical address: 100 * 16 + 30 +70 +
25 =1725. Defaultnya segmen register DA adalah
digunakan untuk semua mode kecuali dengan register
BP, untuk hal tersebut segmen register SS digunakan.
Cara mudah
untuk mengingat semua kemungkinan tersebut dengan cara dibawah ini: