Anda di halaman 1dari 3

ORGANISASI DAN ARSITEKTUR KOMPUTER

DOSEN: DR. IR. M. IRSAN KASAU, MT

KULIAH 6: REGISTER RESISTER CPU DAN FUNGSI KHUSUSNYA


KLS 5TI: A, B, C, D, E, F, G, H

Di dalam CPU ada sejumlah register khusus dan juga ada beberapa register umum. Disebut register
khusus karena bertugas menjalankan fungsi fungsi khusus, dan register umum bertugas menjalankan
fungsi fungsi umum berkaitan dengan data.

REGISTER KHUSUS.

1. PC (Program Counter) → berfungsi untuk membangkitkan Address Memori dan Address I/O lokasi
data dan instpadruksi yang akan dibaca (read) atau ditulis (write) pada memori atau pada I/0 .
2. MAR (Memory Address Register)→ berfungsi untuk menunjuk Address Memory sesuai dengan
yang dibangkitkan oleh PC tempat data atau instruksi yang akan dibaca atau ditulis.
3. MBR (Memory Buffer Register)→ berfungsi menyimpan data/instruksi yang akan ditulis ke Memory
atau data/instruksi yang dibaca dari memori untuk diteruskan ke AC (data) atau ke RI (instruksi).
4. IOAR (Input Output Address Register)→ sama MAR tetapi address pada I/O.
5. IOBR (Input Output Buffer Register)→ sama MBR tetapi ke/dari I/0
6. AC (Accumulator)→ berfungsi untuk menyimpan data sementara yang diterima dari MBR sebelum
dikirim ke register data lainnya, atau menyimpan sementara data yang diterima dari register
lainnya sebelum dikirim ke MBR untuk selanjutnya ditulis ke memori.
7. RI (Register Instruksi)→ berfungsi menerima instruksi dari MBR yang dibaca dari memori untuk
selanjutnya diteruskan ke DI.
8. DI (Decoder Instruksi)→ berfungsi untuk mendecode (mengartikan) dan mengeksekusi
(menjalankan) instruksi yang diterima dari RI.

CPU

PC MAR
Ke ADDRESS MEMORI

RI MBR KE/DARI MEMORI

KE ADDRESS I/O
IOAR
DI

AC IOBR
KE/DARI I/0

REG DATA FLAG (F)


9. FLAG (F)→ berfungsi menyimpan STATUS STATUS operasi dalam ALU. Contoh sejumlah STATUS
yang tersimpan dalam FLAG (F):

S Z x H x OF N Cy(By)

S (SIGN) → Jika 0 berarti bilangan hasil operasi ALU bertanda positif (+) dan jika 1 berarti
bertanda negatif.

Contoh:

+5→0101, atau 00101, atau 000101, dsb. (bit 0 paling kiri merupakan tanda positif (+))

-5→1011, atau 11011, atau 111011, dsb. (bit 1 paling kiri merupakan tanda negatif (-))

Cara mendapatkan bilangan negatif dari bilangan positif.

Misalnya, +5 (0101): Pertama, ubah biner 0 menjadi biner 1, dan biner 1 menjadi biner 0
diperoleh; 1010. Kedua, tambahkan biner 1 pada biner paling kanan, jika ada carry out teruskan
penjumlahannya diperoleh: 1010+0001=1011 (lihat -5 pada contoh diatas).

ZERO (Z) → Jika 0 berarti loop program yang diulang ulang belum selesai, jika 1 berarti loop
program yang diulang ulang sudah selesai. Jadi misalnya suatu bagian program yang diminta diu
lang 10 kali, maka pengulanga pertama sampai pengulangan kesepuluh Z=0, tetapi memasuki
pengulangan yang kesebelas Z=1, yang artinya pengulangan sudah selesai.

HALF CARRY (H) → Flag ini berlaku jika penjumlahan yang terjadi di dalam ALU adalah
penjumlahan biner dari bilangan Heksadesimal.

b7 b6 b5 b4 b3 b2 b1 bo

Jika ada Carry out dari bit b3 ke bit b4, maka hasil penjumlahan biner dari bilangan Heksadesimal
mengalami kesalahan (error) sehingga harus dikoreksi dengan menambahkan 6 (00000110).
Contoh: 69 H ditambah 28 H ( dalam biner: 01101001 ditambah 00101000), hasilnya adalah:

1 1 0 1 0 0 0 Cy

0 1 1 0 1 0 0 1
0 0 1 0 1 0 0 0
Hasilnya:

1 0 0 1 0 0 0 1
Atau: 91, padahal 69+28=97. Karena itu 91 harus ditambahkan 6 (dikoreksi), j jadi (97=91+6).

OVER FLOW (OF)→Mendeteteksi apakah jumlah bit data yang masuk ke register sesuai dengan
Kemampuan register itu. Jika jumlah bit datanya lebih banyak daripada panjang registernya maka
Sebagian bit data itu tidak dapat masuk ke dalam register yang disebut over flow. Karena itu OF
Binernya 1 jika terjadi over flow, dan binernya 0 jika terjadi over flow.
N (OPERASI + ATAU -)→ Jika 0 operasi tambah (+) dan jika (1) operasi kurang (-) dalam ALU
Cy/By (Carry/Borrow)→ Jika operasi tambah maka Cy, dan jika operasi kurang, maka By
N Cy/By OPERASI
0 0 +, Tidak ada carry out (Cy)
0 1 +, Ada carry out (Cy)
1 0 -, Tidak ada borrow out (By)
1 1 -, Ada borrow out (By)

Contoh: +69 D ditambah +28 D ( dalam biner: 01000101 ditambah 00011100), hasilnya adalah:

CARRY OUT (Cy): Terjadi pada penjumlahan bilangan Desimal (N=0).

0 0 1 1 1 0 0 Cy

0 1 0 0 0 1 0 1
0 0 0 1 1 1 0 0
Hasilnya:

0 1 1 0 0 0 0 1
Atau: 97D ( Bilangan desimal (D) tdk perlu dikoreksi seperti bilangan Heksadesimal (H))

BORROW OUT (By): Terjadi pada pengurangan bilangan Desimal (N=1).

Contoh: +69 D dikurang +28 D ( dalam biner: 01000101 ditambah 00011100), hasilnya adalah:

0 -1 -1 -1 0 0 0 By

0 1 0 0 0 1 0 1
0 0 0 1 1 1 0 0
Hasilnya:

0 0 1 0 1 0 0 1
Atau: 41D ( Bilangan desimal (D) tdk perlu dikoreksi seperti bilangan Heksadesimal (H))

CATATAN:
1 diatas (lurusan Cy) artinya simpan 1, dan -1 diatas (lurusan By) artinya pinjam 1

SELAMAT KULIAH ONLINE SAMBIL TETAP MEMATUHI PROKES


25 OKTOBER 2021

Anda mungkin juga menyukai