bab v-2

9
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.

Upload: katsuoono

Post on 29-Jun-2015

106 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BAB V-2

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.

Page 2: BAB V-2

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

Page 3: BAB V-2

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.

Page 4: BAB V-2

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.

Page 5: BAB V-2

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.

Page 6: BAB V-2

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 :

Page 7: BAB V-2

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.

Page 8: BAB V-2

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

Page 9: BAB V-2

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