Simple As Possible (SAP) - 1 Abdul Syukur
[email protected] http://skurlinux.blogspot.com 085374051884
Arsitektur Komputer SAP-1 Cp CLK CLR Ep
Pencacah Program (Program Counter)
4
W 8
8 Akumulator A 8
LA CLK EA
8 LM CLK
Register Masukan dan MAR 4
4
4
SU EU
8
Memori RAM 16 x 8
CE
Penjumlah & Pengurang
8
8
8
Register B
LB CLK
LI CLK CLR
8 8
Register Instruksi
8 4 Pengendali Pengurut
Peraga Biner CLK CLK CLR CLR
12 LI EI LA EA SU EU LB LO
LO CLK
4
EI
Cp Ep LM CE
Register Keluaran
Perangkat Instruksi (Instuction Set) Terdapat dua jenis instruksi pada komputer SAP-1 : Memiliki satu operand : LDA, ADD, dan SUB. Ketiganya disebut juga Memory Reference Intruction. Tanpa operand : OUT dan HLT.
Perangkat Instruksi (1) LDA (Load The Accumulator) Instruksi LDA mengambil data dari memori dan memasukkannya ke Akumulator. Contoh : LDA AH Instruksi ini mengambil data dari memori AH dan disalinkan ke Akumulator.
Perangkat Instruksi (2) ADD (Adder) Instruksi ini menjumlahkan isi Akumulator dengan data memori yang telah dipindahkan ke Register B dan hasilnya disimpan kembali di Akumulator. Contoh : LDA AH ADD 8H Misal isi alamat AH = 0000 0011 dan 8H = 0000 0001 Maka : LDA AH A = 0000 0011 ADD 8H A = 0001 0011 + 0000 0001 A = 0000 0100
Perangkat Instruksi (3) SUB (Subtract) Instruksi ini mengurangkan isi Akumulator dengan data memori yang telah dipindahkan ke Register B dan hasilnya disimpan kembali di Akumulator Contoh : LDA AH SUB 5H Misal isi alamat AH = 0000 0101 dan 5H = 0000 0100 Maka : LDA AH A = 0000 0101 SUB 5H A = 0000 0101 - 0000 0100 A = 0000 0001
Perangkat Instruksi (4) OUT Instruksi ini tanpa operand. Data dari Akumulator akan diambil dan dipindahkan ke register keluaran. HLT (Halt) Instruksi ini berfungsi untuk menghentikan proses data. HLT menandai akhir suatu program. Setiap program dalam SAP-1 harus diakhiri oleh HLT.
Pemrograman SAP-1 Siklus Instruksi Siklus instruksi terdiri dari 2 tahapan (siklus): FETCH EXECUTE
Masing-masing siklus memerlukan 3 siklus detak (clock cycle).
No
Mnemonic
Kode Operasi (Opcode)
1
LDA
0000
2
ADD
0001
3
SUB
0010
4
OUT
1110
5
HLT
1111
Pemrograman SAP-1 (2) Siklus FETCH (T1, T2, T3) Pada siklus ini dilakukan pengambilan instruksi dari RAM ke IR. – Mengirim isi PC ke MAR (Address state) – Menaikkan cacahan PC (Increment state) – Mengambil instruksi dari RAM ke IR (Memory state)
Masing-masing tahapan menggunakan satu siklus detak (clock cycle).
Pemrograman SAP-1 (3) Siklus FETCH Tahapan pengiriman alamat, T1. Nilai PC dikirim ke MAR, Pengendali & Pengurut mengirim signal kendali (CON) berikut :
CON = Cp Ep LM CE LI EI LA EA SU EU LB LO CON = 0 1 0 1 1 1 1 0 0 0 1 1
Cp CLK CLR Ep LM CLK
W Pencacah Program (Program Counter)
Register Masukan dan MAR 4
4
Pemrograman SAP-1 (4) Siklus FETCH Tahapan penambahan nilai PC dengan 1, T2. Pengendali & Pengurut mengirim signal kendali (CON) berikut :
CON = Cp Ep LM CE LI EI LA EA SU EU LB LO CON = 1 0 1 1 1 1 1 0 0 0 1 1
Cp CLK CLR Ep LM CLK
W Pencacah Program (Program Counter)
Register Masukan dan MAR 4
4
Pemrograman SAP-1 (5) Siklus FETCH Tahapan pengambilan instruksi dari RAM ke IR, T3. Pengendali & Pengurut mengirim signal kendali (CON) berikut :
CON = Cp Ep LM CE CON = 0 0 1 0
CE LI CLK CLR
LI EI LA EA SU EU LB LO 0 1 1 0 0 0 1 1
W
Memori RAM 16 x 8
8
8 Register Instruksi 4
EI 4
Siklus FETCH Keseluruhan Tahap pengalamatan (address state), penambahan nilai pencacah (increment state) dan pengambilan instruksi dari memori (memory state) disebut juga dengan siklus fetch. Berikut adalah gambar komponen-komponen yang aktif (warna biru) pada setiap tahapan T1, T2, T3.
Ilustrasi Siklus FETCH (T1) Address State Cp CLK CLR Ep
Pencacah Program (Program Counter)
4
W 8
8 Akumulator A 8
LA CLK EA
8 LM CLK
Register Masukan dan MAR 4
4
4
SU EU
8
Memori RAM 16 x 8
CE
Penjumlah & Pengurang
8
8
8
Register B
LB CLK
LI CLK CLR
8 8
Register Instruksi
8 4 Pengendali Pengurut
Peraga Biner CLK CLK CLR CLR
12 LI EI LA EA SU EU LB LO
LO CLK
4
EI
Cp Ep LM CE
Register Keluaran
Ilustrasi Siklus FETCH (T2) Increment State Cp CLK CLR Ep
Pencacah Program (Program Counter)
4
W 8
8 Akumulator A 8
LA CLK EA
8 LM CLK
Register Masukan dan MAR 4
4
4
SU EU
8
Memori RAM 16 x 8
CE
Penjumlah & Pengurang
8
8
8
Register B
LB CLK
LI CLK CLR
8 8
Register Instruksi
8 4 Pengendali Pengurut
Peraga Biner CLK CLK CLR CLR
12 LI EI LA EA SU EU LB LO
LO CLK
4
EI
Cp Ep LM CE
Register Keluaran
Ilustrasi Siklus FETCH (T3) Memory State Cp CLK CLR Ep
Pencacah Program (Program Counter)
4
W 8
8 Akumulator A 8
LA CLK EA
8 LM CLK
Register Masukan dan MAR 4
4
4
SU EU
8
Memori RAM 16 x 8
CE
Penjumlah & Pengurang
8
8
8
Register B
LB CLK
LI CLK CLR
8 8
Register Instruksi
8 4 Pengendali Pengurut
Peraga Biner CLK CLK CLR CLR
12 LI EI LA EA SU EU LB LO
LO CLK
4
EI
Cp Ep LM CE
Register Keluaran
Pemrograman SAP-1 (6) Siklus Eksekusi (T4, T5, T6) Instruksi LDA (T4 dan T5) Tahapan pada instruksi LDA : – Pada T4 alamat memori dikirim dari IR ke MAR. – Pada T5 data dari RAM diambil dan dikirim ke Akumulator. – Pada T6 tidak melakukan apa-apa.
Pemrograman SAP-1 (7) Siklus Eksekusi Instruksi LDA Tahap pengiriman alamat, T4 : Pengendali & Pengurut mengirim signal kendali (CON) berikut :
CON = Cp Ep LM CE CON = 0 0 0 1
LI EI LA EA SU EU LB LO 1 0 1 0 0 0 1 1
W LM CLK
Register Masukan dan MAR 4
4
LI
8 Register Instruksi 4
EI 4
Pemrograman SAP-1 (8) Siklus Eksekusi Instruksi LDA Tahap pengambilan data, T5 : Pengendali & Pengurut mengirim CON = Cp Ep LM CE signal kendali (CON) CON = 0 0 1 0 berikut : W
LI EI LA EA SU EU LB LO 1 1 0 0 0 0 1 1
8 Akumulator A 8 8
CE
Memori RAM 16 x 8
8
LA CLK EA
Siklus Instruksi LDA Keseluruhan Berikut ini adalah gambar komponen-komponen yang aktif (warna biru) pada tahap T4 dan T5 instruksi LDA.
Ilustrasi Siklus Intruksi LDA (T4) LDA Cp CLK CLR Ep
Pencacah Program (Program Counter)
4
W 8
8 Akumulator A 8
LA CLK EA
8 LM CLK
Register Masukan dan MAR 4
4
4
SU EU
8
Memori RAM 16 x 8
CE
Penjumlah & Pengurang
8
8
8
Register B
LB CLK
LI CLK CLR
8 8
Register Instruksi
8 4 Pengendali Pengurut
Peraga Biner CLK CLK CLR CLR
12 LI EI LA EA SU EU LB LO
LO CLK
4
EI
Cp Ep LM CE
Register Keluaran
Ilustrasi Siklus Intruksi LDA (T5) LDA Cp CLK CLR Ep
Pencacah Program (Program Counter)
4
W 8
8 Akumulator A 8
LA CLK EA
8 LM CLK
Register Masukan dan MAR 4
4
4
SU EU
8
Memori RAM 16 x 8
CE
Penjumlah & Pengurang
8
8
8
Register B
LB CLK
LI CLK CLR
8 8
Register Instruksi
8 4 Pengendali Pengurut
Peraga Biner CLK CLK CLR CLR
12 LI EI LA EA SU EU LB LO
LO CLK
4
EI
Cp Ep LM CE
Register Keluaran
Pemrograman SAP-1 (9) Siklus Eksekusi Instruksi ADD dan SUB – T4 : Alamat memori dikirim dari IR ke MAR. – T5 : Pemindahan data dari memori ke register B. – T6 : Data dari akumulator dioperasikan (jumlah atau kurang) dengan data dari register B dan hasilnya disimpan di akumulator.
Perbedaan antara ADD dengan SUB hanya pada T6.
Pemrograman SAP-1 (10) Siklus Eksekusi T4 : Alamat memori dikirim dari IR ke MAR sama dengan tahapan T4 pada LDA. T5 : Pemindahan data dari memori ke register B. Pengendali & Pengurut mengirim signal kendali (CON) berikut : CON = Cp Ep LM CE CON = 0 0 1 0
CE
Memori RAM 16 x 8
LI EI LA EA SU EU LB LO 1 1 1 0 0 0 0 1 W
8
8
Register B
LB CLK
Pemrograman SAP-1 (11) Siklus Eksekusi Operasi ADD : CON : Operasi SUB : CON :
CON = Cp Ep LM CE CON = 0 0 1 1
LI EI LA EA SU EU LB LO 1 1 0 0 0 1 1
CON = Cp Ep LM CE CON = 0 0 1 1
8 Akumulator A 8
LI EI LA EA SU EU LB LO 1 1 0 0 1 1 1
LA CLK EA
8 Penjumlah & Pengurang
8
SU EU
8 8
Register B
LB CLK
Siklus Instruksi ADD/SUB Keseluruhan Berikut ini adalah gambar komponen-komponen yang aktif (warna biru) pada tahap T4, T5, dan T6 instruksi ADD/SUB.
Ilustrasi Siklus Instruksi ADD/SUB (T5) Cp CLK CLR Ep
Pencacah Program (Program Counter)
4
W 8
8 Akumulator A 8
LA CLK EA
8 LM CLK
Register Masukan dan MAR 4
4
4
SU EU
8
Memori RAM 16 x 8
CE
Penjumlah & Pengurang
8
8
8
Register B
LB CLK
LI CLK CLR
8 8
Register Instruksi
8 4 Pengendali Pengurut
Peraga Biner CLK CLK CLR CLR
12 LI EI LA EA SU EU LB LO
LO CLK
4
EI
Cp Ep LM CE
Register Keluaran
Ilustrasi Siklus Instruksi ADD/SUB (T6) Cp CLK CLR Ep
Pencacah Program (Program Counter)
4
W 8
8 Akumulator A 8
LA CLK EA
8 LM CLK
Register Masukan dan MAR 4
4
4
SU EU
8
Memori RAM 16 x 8
CE
Penjumlah & Pengurang
8
8
8
Register B
LB CLK
LI CLK CLR
8 8
Register Instruksi
8 4 Pengendali Pengurut
Peraga Biner CLK CLK CLR CLR
12 LI EI LA EA SU EU LB LO
LO CLK
4
EI
Cp Ep LM CE
Register Keluaran
Instruksi OUT Instruksi OUT memerlukan satu tahap T4 yaitu memindahkan data dari akumulator kedalam register keluaran.
Siklus Instruksi OUT Keseluruhan Cp CLK CLR Ep
Pencacah Program (Program Counter)
4
W 8
8 Akumulator A 8
LA CLK EA
8 LM CLK
Register Masukan dan MAR 4
4
4
SU EU
8
Memori RAM 16 x 8
CE
Penjumlah & Pengurang
8
8
8
Register B
LB CLK
LI CLK CLR
8 8
Register Instruksi
8 4 Pengendali Pengurut
Peraga Biner CLK CLK CLR CLR
12 LI EI LA EA SU EU LB LO
LO CLK
4
EI
Cp Ep LM CE
Register Keluaran
RAM
Latihan (1) Berikut adalah sebuah program SAP-1 dalam bentuk Mnemonik. Berapakah nilai akhir pada register Akumulator ?
Alamat
Mnemonik
0H
LDA 9H
1H
ADD AH
2H
ADD BH
3H
SUB CH
4H
OUT
5H
HLT
Alamat
Data
6H
00 H
7H
00 H
8H
00 H
9H
01 H
AH
02 H
BH
03 H
CH
04 H
DH
00 H
EH
00 H
FH
00 H
Jawaban (Hexadesimal) A = 01H (LDA 9H) A = 01H + 02H (ADD AH) A = 03 H A = 03H + 03H (ADD BH) A = 06 H A = 06H – 04H (SUB CH) A = 02 H Instruksi OUT akan mengeluarkan isi akumulator ke register keluaran 0000 0010 atau (02 H). Instruksi HALT menghentikan permrosesan data.
RAM
Latihan (2) Berikut adalah sebuah program SAP-1 dalam bentuk Mnemonik. Berapakah nilai akhir pada register Akumulator ?
Alamat
Instruksi
0H
0000 1001
1H
0001 1010
2H
0001 1011
3H
0010 1100
4H
1110 xxxx
5H
1111 xxxx
Alamat
Data
6H
0000 0000
7H
0000 0000
8H
0000 0000
9H
0000 0001
AH
0000 0010
BH
0000 0011
CH
0000 0100
DH
0000 0000
EH
0000 0000
FH
0000 0000
Jawaban (Biner) A = 0000 0001 (LDA 9H) A = 0000 0001 + 0000 0010 (ADD AH) A = 0000 0011 A = 0000 0011 + 0000 0011 (ADD BH) A = 0000 0110 A = 0000 0110 – 0000 0100 (SUB CH) A = 0000 0010 Instruksi OUT akan mengeluarkan isi akumulator ke register keluaran 0000 0010. Instruksi HALT menghentikan pemrosesan data.
RAM
Latihan (3) Berikut adalah sebuah program SAP-1 dalam bentuk Mnemonik. Berapakah nilai akhir pada register Akumulator ?
Alamat
Mnemonik
0H
LDA EH
1H
ADD 8H
2H
SUB DH
3H
ADD BH
4H
OUT
5H
HLT
Alamat
Data
6H
00 H
7H
00 H
8H
08 H
9H
00 H
AH
00 H
BH
07 H
CH
00 H
DH
05 H
EH
09 H
FH
00 H