Post on 29-Jun-2015
1
Perangkat Instruksi
(Instruction Set)
� Instruksi dalam SAP-1 terdiri dari 2 jenis : 1 operand dan tanpa operand.
� Operand adalah data atau alamat data yang
dioperasikan.
� Instruksi yang memiliki 1 operand adalah :
LDA, ADD dan SUB.
� Instruksi tanpa operand adalah OUT dan HLT
Memory Reference Instruction
� Instruksi LDA, ADD dan SUB disebut instruksi-instruksi yang mengacu pada
memori (memory reference instruction),
karena semua instruksi yang bersangkutan menggunakan data yang tersimpan dalam
memori.
� LDA (Load the Accumulator)
Instruksi LDA mengambila data dari memori dan dimasukan ke dalam akumulator. Contoh :
LDA AH
Instruksi ini mengambil data dari alamat memori AH dan disimpan ke dalam akumulator.
� ADD (Adder)
Instruksi ADD menjumlahkan isi akumulator dengan data memori.
Contoh :
ADD 8H
Instruksi ini menjumlahkan isi akumulator denagn data memori alamat 8H. Hasil
penjumlahan disimpan kembali dalam akumulator.
2
Misal isi alamat AH = 00000011 dan
8H = 00000001
LDA AH : A = 00000011
ADD 8H : A = A + 00000001
= 00000011 + 00000001
= 00000100
Selama pelaksanaan instruksi ADD 8H akan berlangsung operasi sbb:
� Pertama isi memori alamat 8H = 00000001 akan ditransfer ke dalam register B sehingga B = 00000001
� Pada waktu bersamaan register Penjumlah-Pengurang melakukan penjumlahan dari register A dan B, menghasilkan jumlah, Hasil Jumlah = 000000100.
� Kemudian Hasil Jumlah ini diisikan ke dalam akumulator sehingga A = 00000100
� SUB (Subtract)
Instruksi SUB mengurangkan isi akumulator dengan isi register B.
Contoh :
SUB 8H
Instruksi ini mengurangkan isi akumulator dengan data memori alamat 8H. Hasilnya
disimpan kembali dalam akumulator.
Prosesnya mirip dengan instruksi ADD. Misal AH = 00000101 dan
8H = 00000010
LDA AH : A = 00000101
ADD 8H : A = A - 00000010
= 00000101 - 00000010
= 00000011
Isi alamat memori 8H diambil dan dimasukan ke dalam register B. Kemudian dilakukan proses pengurangan dan hasilnya disimpan kembali di Akumulator
3
� OUT
Instruksi OUT adalah instruksi tanpa operand. Data dari akumulator secara otomatis akan diambil dan dimasukan ke dalam Register Keluaran.
� HLT (Halt)
Instruksi HLT berfungsi untuk menghentikan proses. Instruksi ini memberitahu kepada komputer untuk berhenti memproses data. HLT menandai akhir suatu program. Instruksi ini tidak memerlukan operand memori. Setiap
program dalam SAP-1 harus diakhiri dengan HLT.
Pemrograman SAP-1Di dalam pemrograman SAP terdapat kode yang akan memerintahkan komputer untuk melakukan suatu operasi yang disebut dengan kode operasi (operation code) yang disingkat dengan opcode. Berikut akan diberikan kode operasi dari tiap instruksi pada SAP-1 :
1111HLT5
1110OUT4
0010SUB3
0001ADD2
0000LDA1
Kode Operasi (Opcode)MnemonikNo.
Siklus Instruksi
Dalam menyelesaikan setiap instruksi diperlukan. Tahapan ini disebut siklus instruksi.
Siklus instruksi terdiri dari 2 tahap yaitu FETCH
dan EXECUTE. Masing-masing tahap memerlukan 3 siklus clock (clock cycle)
ditandai dengan T1, T2, T3, T4, T5 dan T6. Siklus
clock ini diatur oleh pencacah yang disebut
Ring Counter yang mengeluarkan nilai T :
T = T6T5T4T3T2T1
� Pada saat komputer mulai dijalankan, data keluaran pencacah tersebut adalah :
T = 000001
� Selanjutnya akan menghasilkan 000010, 000100, 001000, 010000, dan 100000.
Setiap instruksi diselesaikan dalam 6
keadaan T tersebut.
4
Siklus Fetch
Pada siklus fetch dilakukan pengambilan instruksi dari memori dan diletakan di dalam register instruksi. Semua instruksi melalui tahap ini. Tiga hal yang dilakukan pada tahap ini :
� Mengirim isi Pencacah Program ke dalam register alamat (MAR) (Address State)
� Menambah nilai pencacah Program dengan 1 (Increment State)
� Mengambil instruksi dari memori dan dimasukkan ke dalam register instruksi (Memory State)
Tahap Pengiriman Alamat
(Address State) – T1
� Pada tahap ini nilai dari pencacah program dikirim ke register alamat memori (MAR). Pengendali/Pengurut
akan mengirim nilai kendali CON :
1 1 0 0 0 1 1 1 1 0 1 0 CON
L L E S E L E L C L E CCONOBUUAA11EMPP
=
=
� Jalur yang aktif ada dua EP = 1 aktif high dan LM 0 aktif low. Data 4 bit akan keluar dari Pencacah
Program menuju bus W bersamaan dengan itu data dari bus W akan diambil ke dalam Masukan dan MAR. Akhir tahap ini, alamat 4 bit sudah berada dalam MAR menunjuk ke memori RAM.
Tahap Penambahan Nilai Pencacah
dengan 1 (Increment State) – T2
� Pada tahap ini nilai dari pencacah program ditambahkan dengan satu Pengendali/Pengurut
akan mengirim nilai kendali CON :
1 1 0 0 0 1 1 1 1 1 0 1 CON
L L E S E L E L C L E CCONOBUUAA11EMPP
=
=
� Jalur yang aktif CP = 1 Nilai Pencacah ditambah 1.
Tahap Pengambilan Instruksi dari Memori (Memory State) – T3
� Pada tahap ini data pada Memori RAM yang ditunjuk oleh MAR, dikeluarkan menuju bus. Sementara itu, data dari bus W masuk ke dalam register Instruksi.
Pengendali/Pengurut akan mengirim nilai kendali CON :
1 1 0 0 0 1 1 0 0 1 0 0 CON
L L E S E L E L C L E CCONOBUUAA11EMPP
=
=
� Jalur yang aktif CE dan L1 = 0, keduanya aktif low.
� Data 8 bit akan keluar dari Memori RAM menuju bus W, bersamaan dengan itu, data dari bus W akan diambil ke dalam Register Instruksi. Akhir tahap ini, 8 bit instruksi sudah berada dalam Register Instruksi.
5
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 ini adalah dambar komponen-
komponen yang aktif (warna abu-abu) pada
setiap tahapan T1, T2, T3 :
Pencacah Program
(Progam
Counter)
4
CpCLK
Ep
CL
K
Masukan
dan MAR
4LM
CL
K
Memori
RAM 16 x 88CE
4 4
Register
Instruksi 4
L
1CLK
E
1
CL
R
8
W
8
Peraga
Biner
Register B8
L
B
CLK
AkumulatorA8
L
ACL
K
E
A8
8
Penjumlah
&Pengurang
8
8
Register
Keluaran8
8
L
O
CL
K
Pengendali
Pengurut
CLKCL
K
CLR
CL
R
4
1
2
CPEPLMCE L1E1LAEA SUEULBLO
Pencacah
Program(Progam
Counter)
4
C
pCLK
E
p
CLK
Masukandan MAR
4LM
CLK
Memori
RAM 16 x 88CE
4 4
Register Instruksi 4
L
1CLK
E
1
CLR
8
W8
PeragaBiner
Register B8
L
B
CL
K
Akumulator
A8
L
ACLK
E
A8
8
Penjumlah
&
Pengurang
8
8
Register Keluaran8
8
L
O
CLK
Pengendali
Pengurut
CLKCLK
CL
R
CL
R
4
12
CPEPLMCE L1E1LAEA SUEULBLO
Pencacah Program
(Progam
Counter)
4
CpCLK
Ep
CL
K
Masukan
dan MAR
4LM
CL
K
Memori
RAM 16 x 88CE
4 4
Register
Instruksi 4
L
1CLK
E
1
CL
R
8
W
8
Peraga
Biner
Register B8
L
B
CLK
AkumulatorA8
L
ACL
K
E
A8
8
Penjumlah
&Pengurang
8
8
Register
Keluaran8
8
L
O
CL
K
Pengendali
Pengurut
CLKCL
K
CLR
CL
R
4
1
2
CPEPLMCE L1E1LAEA SUEULBLO
Siklus Eksekusi
� Eksekusi instruksi dikendalikan oleh
Pengendali/Pengurut (Controller / Sequencer).
Masing-masing tahap eksekusi T4, T5 dan T6 berbeda-beda untuk setiap instruksi.
6
Instruksi LDA
Pada instruksi LDA hanya T4 dan T5 yang aktif, sementara tahap T6 tidak ada yang aktif.
Tahapan pada instruksi LDA :
� Pada tahap T4 alamat memori dikirim dari
register instruksi ke MAR.
� Pada tahap T5 data dari memori diambil dan
masuk ke register Akumulator.
� Pada tahap T6 tidak melakukan apa-apa.
Tahap Pengiriman Alamat – T4
� Pada tahap ini nilai 4 bit operand dari register
instruksi masuk ke MAR. Pengendali/Pengurut
akan mengirim nilai kendali CON :
1 1 0 0 0 1 0 1 1 0 0 0 CON
L L E S E L E L C L E CCONOBUUAA11EMPP
=
=
� Jalur yang aktif LM dan E1 = 0, keduanya aktif low.
� Data 4 bit keluar dari Register Instruksi menuju bus
W, bersamaan dengan itu, data dari bus W akan diambil ke dalam MAR. Akhir tahap ini, 4 bit
instruksi sudah berada dalam MAR menunjuk ke
alamat memori RAM.
Tahap Pengambilan Data – T5
� Pada tahap ini data 8 bit dari memori diambil dan
dimasukan ke dalam akumulator. Pengendali/ Pengurut akan mengirim nilai kendali CON :
1 1 0 0 0 0 1 1 0 1 0 0 CON
L L E S E L E L C L E CCONOBUUAA11EMPP
=
=
� Jalur yang aktif CE dan LA = 0, keduanya aktif low.
� Data 8 bit dari memori menuju bus W, bersamaan
dengan itu, data dari bus W akan diambil ke dalam akumulator. Akhir tahap ini, 8 bit data masuk ke
akumulator.
Siklus Instruksi LDA
Keseluruhan
� Berikut ini adalah gambar komponen-komponen yang aktif (warna abu-abu) pada
tahap T4 dan T5 instruksi LDA :
7
Pencacah Program
(Progam
Counter)
4
CpCLK
Ep
CL
K
Masukan
dan MAR
4LM
CL
K
Memori
RAM 16 x 88CE
4 4
Register
Instruksi 4
L
1CLK
E
1
CL
R
8
W
8
Peraga
Biner
Register B8
L
B
CLK
AkumulatorA8
L
ACL
K
E
A8
8
Penjumlah
&Pengurang
8
8
Register
Keluaran8
8
L
O
CL
K
Pengendali
Pengurut
CLKCL
K
CLR
CL
R
4
1
2
CPEPLMCE L1E1LAEA SUEULBLO
Pencacah
Program(Progam
Counter)
4
C
pCLK
E
p
CLK
Masukandan MAR
4LM
CLK
Memori
RAM 16 x 88CE
4 4
Register Instruksi 4
L
1CLK
E
1
CLR
8
W8
PeragaBiner
Register B8
L
B
CL
K
Akumulator
A8
L
ACLK
E
A8
8
Penjumlah
&
Pengurang
8
8
Register Keluaran8
8
L
O
CLK
Pengendali
Pengurut
CLKCLK
CL
R
CL
R
4
12
CPEPLMCE L1E1LAEA SUEULBLO
Instruksi ADD dan SUB
� Pada tahap T4 alamat memori dikirim dari
register instruksi ke MAR.
� Pada tahap T5 data dari memori diambil dan
masuk ke register Akumulator.
� Pada tahap T6 data dari register B dioperasikan
dengan akumulator dan hasilnya disimpan
dalam akumulator. Perbedaan instruksi ADD
dan SUB pada tahap 6.
Pada instruksi ADD dan SUB data operand
diambil dari memori dan dijumlahkan dengan
akumulator dan hasilnya disimpan kembali ke
dalam akumulator. Tahapan pada instruksi LDA :
Tahap Pengiriman Alamat – T4
� Pada tahap ini, sama persis dengan instruksi
LDA. Nilai Alamat 4 bit dari register instruksi
masuk ke dalam register alamat memori (MAR)
Tahap Pengiriman Data – T5
� Pada tahap ini data 8 bit dari memori diambil dan
dimasukan dalam register B. Pengendali/
Pengurut akan mengirim nilai kendali CON :
1 0 0 0 0 1 1 1 0 1 0 0 CON
L L E S E L E L C L E CCONOBUUAA11EMPP
=
=
� Jalur yang aktif CE dan LB = 0, keduanya aktif low.
� Data 8 bit dari memori menuju bus W. bersamaan
dengan itu, data dari bus W akan diambil ke dalam register B. Akhir tahap ini, 8 bit data masuk ke
register B.
8
Tahap Pengoperasian
ADD/SUB Data – T6
� Pada tahap ini data 8 bit dari akumulator dan register B dioperasikan (ADD/SUB) hasilnya disimpan dalam akumulator. Pengendali/ Pengurut akan mengirim nilai kendali CON :
� Operasi ADD
� Jalur yang aktif EU = 1 aktif high dan LA = 0 aktif low.
1 1 1 0 0 0 1 1 1 1 0 0 CON
L L E S E L E L C L E CCONOBUUAA11EMPP
=
=
� Operasi SUB
� Jalur yang aktif SU, EU aktif high dan LA = 0 aktif
low.
� Data 8 bit dari register B dan akumulator
dioperasikan (ADD/SUB) dan hasilnya disimpan
kembali ke akumulator lewat bus W.
1 1 1 1 0 0 1 1 1 1 0 0 CON
L L E S E L E L C L E CCONOBUUAA11EMPP
=
=
Siklus Instruksi ADD/SUB
Keseluruhan
� Berikut ini adalah gambar komponen-komponen yang aktif (warna abu-abu) pada
tahap T4 , T5 dan T6 instruksi ADD / SUB :
Pencacah Program
(Progam
Counter)
4
CpCLK
Ep
CL
K
Masukan
dan MAR
4LM
CL
K
Memori
RAM 16 x 88CE
4 4
Register
Instruksi 4
L
1CLK
E
1
CL
R
8
W
8
Peraga
Biner
Register B8
L
B
CLK
AkumulatorA8
L
ACL
K
E
A8
8
Penjumlah
&Pengurang
8
8
Register
Keluaran8
8
L
O
CL
K
Pengendali
Pengurut
CLKCL
K
CLR
CL
R
4
1
2
CPEPLMCE L1E1LAEA SUEULBLO
Pencacah
Program(Progam
Counter)
4
C
pCLK
E
p
CLK
Masukandan MAR
4LM
CLK
Memori
RAM 16 x 88CE
4 4
Register Instruksi 4
L
1CLK
E
1
CLR
8
W8
PeragaBiner
Register B8
L
B
CL
K
Akumulator
A8
L
ACLK
E
A8
8
Penjumlah
&
Pengurang
8
8
Register Keluaran8
8
L
O
CLK
Pengendali
Pengurut
CLKCLK
CL
R
CL
R
4
12
CPEPLMCE L1E1LAEA SUEULBLO
9
Instruksi OUT
� Instruksi OUT memerlukan satu tahap T yaitu memindahkan data dari akumulator ke dalam register keluaran. Pengendali/ Pengurut akan mengirim nilai kendali CON :
� Jalur yang aktif EA = 1 aktif high dan LB = 0 aktif low.
� Siklus Instruksi OUT Keseluruhan :
0 1 0 0 1 1 1 1 1 1 0 0 CON
L L E S E L E L C L E CCONOBUUAA11EMPP
=
=
Pencacah
Program(Progam
Counter)
4
C
pCLK
E
p
CLK
Masukandan MAR
4LM
CLK
Memori
RAM 16 x 88CE
4 4
Register Instruksi 4
L
1CLK
E
1
CLR
8
W8
PeragaBiner
Register B8
L
B
CL
K
Akumulator
A8
L
ACLK
E
A8
8
Penjumlah
&
Pengurang
8
8
Register Keluaran8
8
L
O
CLK
Pengendali
Pengurut
CLKCLK
CL
R
CL
R
4
12
CPEPLMCE L1E1LAEA SUEULBLO