SAP-2

advertisement
11/20/2015
Tahun Akademik 2015/2016
Semester I
DIG1B3 – Konfigurasi Perangkat
Keras Komputer
SAP-2
Mohamad Dani (MHM)
E-mail: [email protected]
Hanya dipergunakan untuk kepentingan pengajaran di lingkungan Telkom Applied Science School
Setelah mengikuti perkuliahan ini
mahasiswa dapat:





Memahami Arsitektur SAP-2.
Menjelaskan cara kerja SAP-2.
Menjelaskan instruksi-instruksi yang ada pada SAP-2.
Membuat program sederhana untuk SAP-2..
Dapat menggunakan Logisim dan ISIS Proteus untuk
mensimulasikan cara kerja SAP-2 untuk program yang
diload ke RAM SAP-2.
1
11/20/2015
Komputer SAP-2
(Simple As Possible Versi 2)



Perancangan
komputer
SAP
bertujuan
untuk
memperkenalkan semua ide penting dibalik operasi
komputer tanpa harus tenggelam dalam kerumitan yang
tidak perlu.
Meski sederhana, SAP sudah mengandung banyak konsep
yang lanjut.
SAP-2 merupakan tahap pengembangan dari komputer
SAP-1 yang memiliki jumlah instruksi yang lebih banyak
dengan kapasitas memori yang lebih banyak dengan fitur
yang lebih lengkap.
ARSITEKTUR SAP-2
Bus W
ACKNOWLEDGE
8
Hexadecimal
Keyboard
encoder
8
Input
Port 2
8
PC
16
8
Accumulator
8
ALU
8
TMP
8
B
8
C
8
Input
Port 1
2
FLAGS
8
Hexadecimal
Display
8
16
MAR
16
0
SERIAL IN 7
Address
64K
Memory
8
Data
MDR
8
IR
8
8
Output
Port 3
8
Output
Port 4
0
7
SERIAL OUT
ACKNOWLEDGE
8
READY
Controller/
Sequencer
2
11/20/2015
ARSITEKTUR SAP-2:
Input Port

SAP-2 memiliki 2 buah input port
yaitu input port 1 dan 2.

Dihubungkan dengan keyboard
heksadesimal untuk menuliskan data
& instruksi.

Sinyal Ready dikirim ke jalur 0 Input
Port 2 untuk menunjukkan data
pada Input Port 1 telah benar.

Sinyal SERIAL IN untuk masuk ke
jalur 7 pada Input Port 2.
Bus W
ACKNOWLEDGE
8
Hexadecimal
Keyboard
encoder
READY
0
SERIAL IN
7
Input
Port 1
8
Input
Port 2
8
ARSITEKTUR SAP-2:
PC dan MAR
Bus W
ACKNOWLEDGE
8
Hexadecimal
Keyboard
encoder
0
SERIAL IN 7
8
Input
Port 2
8
PC
16
MAR
16
READY
Input
Port 1
Address
16
PC (Program Counter)
 Lebar 16-bit (0000 H – FFFF H)
 Nilai PC masuk ke MAR
 Instruksi dilaksanakan secara
berurutan dari alamat 0000 sampai
ketemu instruksi HLT
 Dapat diisi nilai 16-bit dari instruksi
jump
 Jalur yang menghubungkan PC
dengan bus W ada 2:
 1 jalur untuk mengirim nilai
 1 jalur untuk menerima jump
MAR (Memory Address Register)
 Menerjemahkan alamat dari PC
untuk diproses ke memori.
3
11/20/2015
ARSITEKTUR SAP-2:
64K Memory

Bus W
16
MAR
16

Address
64K
Memory
8
Data

Lebar data 8-bit.
Penggunaan alamat memori :
 2KB awal (0000H - 07FFH)
untuk program monitor.
 0800H – FFFFH untuk instruksi
dan data.
Program monitor untuk masukan
dari keyboard dan kondisi yang
terjadi selama proses
ARSITEKTUR SAP-2:
MDR (Memory Data Register)

Untuk menyimpan sementara data
yang dibaca atau akan dimasukkan
ke dalam memori.

Saat operasi baca data masuk ke
MDR untuk diteruskan ke Bus W.

Saat operasi tulis, data dari bus W
akan diteruskan ke memori.
Bus W
64K
Memory
8
MDR
8
4
11/20/2015
ARSITEKTUR SAP-2:
IR (Instruction Register) & Controller/Sequencer (CS)

Bus W
IR

Instruksi lebarnya 8-bit (sama dengan
prosesor 8080/8085 dari Intel) untuk
diteruskan ke controller/sequencer.

Jumlah instruksi yang bisa dimiliki 256
buah.

SAP-2 hanya punya 43 instruksi.
8
8
IR (Instruction Register)
Controller/
Sequencer

CS (CONTROLLER/SEQUENCER)

Instruksi dari IR akan diterjemahkan
mejadi sinyal kontrol (CON).
ARSITEKTUR SAP-2:
Accumulator dan ALU

Accumulator

Untuk menyimpan sementara hasil operasi
ALU.

Data dari bus W bisa dari memori atau hasil
operasi ALU

Keluaran data dapat ditransfer ke output
port.
Bus W
8
8
Accumulator
ALU
2
FLAGS
8

ALU

Untuk menyelesaikan operasi aritmetika &
logika

Lebar 8-bit (jadi SAP-2 adlh prosesor 8-bit)

Terdapat 2-bit FLAG :

1 bit untuk sign flag (1 hasil ALU
negatif, 0 positif).

1 bit untuk zero flag (1 hasil bukan 0, 0
hasil 0).
5
11/20/2015
ARSITEKTUR SAP-2:
Register TMP, B dan C

Untuk menyimpan sementara nilai yang
akan dioperasikan atau hasil operasi.

Khusus register TMP menyimpan data yang
akan dioperasikan oleh ALU.

Lebih banyak register untuk menyimpan
data sementara akan lebih baik.

Data sementara tidak hanya disimpan di
Accumulator A.

Untuk mengkomunikasikan
proses dengan pengguna.

Pengguna dapat melihat hasilnya
lewat Hexadesimal Display.
Bus W
ALU
8
TMP
8
B
8
C
8
8
ARSITEKTUR SAP-2:
Output Port 3 dan 4
hasil
Bus W
8
Output
Port 3
8
Output
Port 4
8
Hexadecimal
Display
SERIAL OUT
ACKNOWLEDGE
6
11/20/2015
Jalur 2 Arah
Bus W
ACKNOWLEDGE
Hexadecimal
Keyboard
encoder
n
8
(a)
8
0
READY
SERIAL IN 7
Input
Port 2
8
PC
16
MAR
16
(b)
Accumulator
(a) JALUR SATU ARAH
8
Input
Port 1
n
ALU
8
TMP
2
FLAGS
(b) JALUR DUA ARAH
(satu untuk IN satu untuk
8
8
16
OUT)
B
8
Address
64K
Memory
C
8
8
Data
8
IR
8
8
Output
Port 3
8
Output
Port 4
8
0
7
Hexadecimal
Display
SERIAL OUT
ACKNOWLEDGE
8
MDR
Controller/
Sequencer
Instruction Set SAP-2 (1)

Instruksi terdiri dari 2 bagian :

Operational code (Opcode)

Operand (nilai yang dioperasikan)

Kebutuhan memori untuk operand tergantung jenis instruksi.

Terdapat 43 Instruksi pada SAP-2

Contoh 3 instruksi dimulai dari alamat 1000H:

ADD B op code 80, tidak butuh memori

MVI A,18H  op code 3E butuh 1 alamat memori

STA 4861H  op code 32 butuh 2 alamat memori
7
11/20/2015
Instruction Set SAP-2 (2)
Instruction Set SAP-2 (3)
8
11/20/2015
Siklus Instruksi

Secara garis besar, instruksi pada SAP-2 diselesaikan jadi 3
tahap :
 Fetch
 Siklus Fetch sama dg SAP-1 di mana akhir dari siklus
adalah op code ada di IR.

Penerjemahan (decode)
 Siklus penerjemah dilakukan di controller/sequencer.
 hasil penerjemahan dikeluarkan oleh CON dan digunakan
pada tahap eksekusi.

Execute
 Melakukan eksekusi berdasarkan sinyal kontrol CON.
Jenis-Jenis Instruksi SAP-2
 Instruksi
Mengacu Memori (Memory Reference
Instruction, MRI)
 Instruksi antar Register
 Instruksi Lompat dan Pemanggilan (Jump & Call
Instruction)
 Instruksi Logika (Logic Instruction)
 Instruksi lain-lain
9
11/20/2015
MRI
(Memory Reference Instruction)
Yang termasuk ke MRI:
 LDA (load the accumulator)
 STA (store the accumulator)
 MVI (move immediate)

MRI melibatkan pengaksesan memori 2x, yaitu saat fetch
dan eksekusi, sehingga lama.
MRI : LDA
 Berfungsi
untuk menyalin data memori pada alamat
tertentu ke dalam akumulator.

Format instruksi :
LDA Alamat
Contoh:
Mnemonic
LDA 1500H
Keterangan
A  [1500H]
Instruksi memuat data dari alamat memori 1500H ke
akumulator
10
11/20/2015
MRI : STA
 Berfungsi
untuk menyalin data dari akumulator ke
memori pada alamat tertentu.

Format instruksi :
STA Alamat
Contoh:
Mnemonic
STA 1500H
Keterangan
[1500H]  A
Misal sebelum instruksi isi akumulator BFH. Maka
nilai BFH ini akan disalin ke memori alamat 1500H.
MRI : MVI
 Berfungsi
untuk transfer data yang menyalin data 8 bit
ke dalam register. Operand yang terlibat adalah
register A, B, C.

Format instruksi :
MVI Register, byte
Contoh:
Mnemonic
Keterangan
MVI A, 12H
A  11H
MVI B, 34H
B  34H
MVI C, 56H
C  56H
Setelah 3 instruksi dijalankan, maka nilai Register A = 11H, B = 34H, C = 56H
11
11/20/2015
Contoh 1:
 Buatlah
mnemonic dan bahasa mesin SAP-2 untuk
sebuah program yang memasukkan data ke
accumulator dengan 40H, Register B dengan 41H,
Register C dengan 42H dan kemudian program
menyimpan data Accumulator A ke lokasi memori
6285H!. Lokasi awal program di 2000H.
Solusi:
Alamat
Mnemonic
Bahasa Mesin
Keterangan
2000H
MVI A, 40H
3E 40
A  40H
2002H
MVI B, 41H
06 41
B  41H
2004H
MVI C, 42H
0E 42
C  42H
2006H
STA 6285H
32 85 62
[6285H]  A
2009H
HLT
76
STOP
Instruksi Antar Register
 Proses
perpindahan data tidak menggunakan memori.
 Terjadi antar register secara langsung.
 Lebih cepat daripada MRI.
Contoh :
 MOV (move; untuk move register)
 ADD
 SUB
 INR (Increment)
 DCR (Decrement)
12
11/20/2015
Instruksi Antar Register :
MOV (Move Register)
 Berfungsi
untuk transfer data yang menyalin data 8 bit
dari satu register ke register lain. Operand yang
terlibat adalah register A, B, C.

Format instruksi :
MOV Register Tujuan, Register Asal
Contoh:
Mnemonic
MOV A, B
MOV B, C
MOV C, A
Keterangan
AB
BC
C A
Instruksi Antar Register :
ADD & SUB
 Berfungsi
untuk menambah atau mengurangi nilai
accumulator dengan nilai register tertentu dan
hasilnya disimpan di accumulator. Register yang
terlibat adalah register B dan C.

Format instruksi :
ADD Register
SUB Register
Contoh:
Mnemonic
ADD C
SUB B
Keterangan
A A + C
A A - B
13
11/20/2015
Instruksi Antar Register :
INR & DCR
 Berfungsi
menambahkan nilai 1 (INR) atau
mengurangkan nilai 1 (DCR) pada register. Register
yang terlibat sebagai operand adalah A, B, C.

Format instruksi :
INR Register
DCR Register
Contoh:
Mnemonic
INR A
DCR B
Keterangan
A A + 1
BB-1
Contoh 2:

Buatlah mnemonic dan bahasa mesin SAP-2 untuk sebuah program yang
menjumlahkan 2 bilangan heksadesimal 10H yang disimpan di accumulator
dan 20H yang disimpan di Register B dan hasil penjumlahannya disimpan di
lokasi memori 5600H dan kemudian hasil penjumlahannya dinaikkan dengan
1 dan disimpan ke Register C. Lokasi awal program di 2000H.
Solusi:
Alamat
Mnemonic
Bahasa Mesin
Keterangan
2000H
MVI A, 10H
3E 10
A  10H
2002H
MVI B, 20H
06 20
B  20H
2004H
ADD B
80
A A+B
2005H
STA 5600H
32 00 56
[5600H]  A
2008H
INR A
3C
A A + 1
2009H
MOV C,A
4F
C A
200AH
HLT
76
STOP
14
11/20/2015
Instruksi Jump
Berfungsi untuk memungkinkan prosesor mengeksekusi
instruksi tidak secara berurutan.
 Nilai PC dapat diubah sesuai dengan kondisi dan instruksi
lompat atau pemanggilan.
 Contoh :
 JMP (Jump)
 JM (Jump if Minus)
 JZ (Jump if Zero)
 JNZ (Jump if Not Zero)


Di antara keempat instruksi, JMP termasuk instruksi lompatan
tidak bersyarat (uncoditional jump) dan JM, JZ, JNZ adalah
lompatan bersyarat (conditional jump)
Instruksi Jump : JMP
 Adalah
instruksi lompatan tidak bersyarat yang
mengakibatkan prosesor mengalihkan eksekusi
program sesuai dengan alamat tujuan lompatan.

Format instruksi :
JMP Alamat
Contoh:
Mnemonic
JMP 3000H
Keterangan
Instruksi ini memberitahu prosesor untuk
menjalankan instruksi di 3000H. PC 3000H
15
11/20/2015
Instruksi Jump : JM (Jump if Minus)
 Adalah
instruksi lompatan bersyarat. Prosesor akan
memeriksa flag sign keluaran dari ALU. Jika Sign 1
(negatif) maka lompatan dilakukan.

Format instruksi :
JM Alamat
Contoh:
Asumsi nilai reg A = 45H, B = 10H, C = 60H
Mnemonic
Keterangan
SUB B
A  A – B = 45H – 10H = 35H
JM 1000H
Lompat ke alamat 1000H jika Nilai Sign Flag 1 (-)
SUB C
A  A – C = 35H – 60H
JM 2600H
Lompat ke alamat 2600H jika Nilai Sign Flag 1 (-)
Instruksi Jump : JZ (Jump if Zero)
 Adalah
instruksi lompatan bersyarat. Prosesor akan
memeriksa zero keluaran dari ALU. Jika flag Zero 1
(nol) maka lompatan dilakukan

Format instruksi :
JZ Alamat
Contoh:
Asumsi nilai reg A = 45H, B = 10H, C = 35H
Mnemonic
Keterangan
SUB B
A  A – B = 45H – 10H = 35H
JZ 1000H
Lompat ke alamat 1000H jika Nilai Zero Flag 1
SUB C
A  A – C = 35H – 35H = 00H
JZ 2600H
Lompat ke alamat 2600H jika Nilai Zero Flag 1
16
11/20/2015
Instruksi Jump : JNZ (Jump if Not Zero)
 Adalah
instruksi lompatan bersyarat. Prosesor akan
memeriksa zero keluaran dari ALU. Jika flag Zero 0
(hasil ALU tidak 0) maka lompatan dilakukan.

Format instruksi :
JNZ Alamat
Contoh:
Asumsi nilai reg A = 45H, B = 10H, C = 35H
Mnemonic
Keterangan
SUB B
A  A – B = 45H – 10H = 35H
JNZ 1000H
Lompat ke alamat 1000H jika Nilai Zero Flag 0
SUB C
A  A – C = 35H – 35H = 00H
JNZ 2600H
Lompat ke alamat 2600H jika Nilai Zero Flag 0
Instruksi CALL & RET (return) (1)
 Konsep
sub rutin memudahkan pembagian tugas
utama yang diselesaikan oleh program utama dan subprogram.
 Bagian yang sering dieksekusi tidak harus terus
menerus ditulis dalam program utama.
 Bagian ini dapat ditulis secara terpisah pada alamat
tertentu, disebut subrutin atau prosedur.
 CALL adalah instruksi untuk memanggil subrutin.
RETURN untuk mengakhirinya.
 Format Instruksi:
CALL Alamat
17
11/20/2015
Instruksi CALL & RET (return) (2)
 Misal
kita punya subrutin faktorial di alamat 4000H
sampai 4500H. Untuk memanggil subrutin faktorial
tersebut dilakukan pemanggilan berikut :
CALL 4000H
Contoh CALL & RETURN di SAP-2
18
11/20/2015
Contoh CALL & RETURN di SAP-2


Ketika terjadi call yang terletak di alamat 1001H –
1003H, alamat terakhir (1004H) akan disimpan pada
akhir memori.
Alamat FFFEH dan FFFFH dialokasikan untuk alamat
kembali.
Flag
19
11/20/2015
Contoh 3:

Buatlah mnemonic dan bahasa mesin SAP-2 untuk sebuah
program yang mengalikan bilangan desimal 12 dengan 10 dan
simpan hasilnya disimpan di Register A dan alamat 1000H.
Lokasi awal program di 800H.
Solusi:
Alamat
Mnemonic
Bahasa Mesin
Keterangan
0800H
MVI A, 00H
3E 00
A  00H
0802H
MVI B, 0CH
06 0C
B  0CH
0804H
MVI C, 0AH
0E 0A
C 0AH
0806H
ADD B
80
A A + B
0807H
DCR C
0D
CC-1
0808H
JNZ 0806H
C2 06 08
C <>0, JMP 0806H
080BH
STA 1000H
32 00 10
[1000H]  A
080EH
HLT
76
STOP
Contoh 4:

Buatlah mnemonic dan bahasa mesin SAP-2 untuk sebuah
program yang mencari perkalian 2 x 3 x 4, hasil perkalian ketiga
bilangan tersebut disimpan di alamat 1000H. Operasi
perkaliannya dibuat dalam Subrutin dan disimpan di alamat
900H. Lokasi awal program di 800H.
Solusi:
20
11/20/2015
Instruksi Logika
 Dikerjakan
oleh ALU
 Proses logika adalah proses yang didasarkan pada
peraturan aljabar logika
 Contoh :
 CMA (complement the accumulator)
 ANA (and the accumulator)
 ORA (or the accumulator)
 XRA (xor the accumulator)
 ANI (and Immediate)
 ORI (or immediate)
 XRI (xor immediate)
Instruksi Logika:
CMA (complement the accumulator)
 Instruksi
ini berfungsi melakukan komplemen isi
akumulator, yaitu mengubah setiap bit dalam
akumulator dengan nilai kebalikannya.
 Format instruksi :
CMA
 Contoh:


Misal nilai akumulator saat ini adalah A = 00101100
Setelah instruksi CMA
A = 11010011
21
11/20/2015
Instruksi Logika:
ANA (and the accumulator)
 Instruksi
ini berfungsi melakukan operasi AND isi
akumulator dengan isi register lain bit per bit.
Register operand adalah register B, C.
 Format instruksi :
ANA Register
 Contoh:
 Misal nilai akumulator saat ini adalah
A = 00101100 dan
B = 10110001
 Setelah instruksi ANA B
A = 00100000
Instruksi Logika:
ORA (or the accumulator)
 Instruksi
ini berfungsi melakukan operasi OR isi
akumulatir dengan isi register lain bit per bit. Register
operand adalah register B, C.
 Format instruksi :
ORA Register
 Contoh:
 Misal nilai akumulator saat ini adalah
A = 00101100 dan
B = 10110001
 Setelah instruksi ORA B
A = 10111101
22
11/20/2015
Instruksi Logika:
XRA (or the accumulator)
 Instruksi
ini berfungsi melakukan operasi XOR isi
akumulatir dengan isi register lain bit per bit. Register
operand adalah register B, C.
 Format instruksi :
XRA Register
 Contoh:
 Misal nilai akumulator saat ini adalah
A = 00101100 dan
B = 10110001
 Setelah instruksi XRA B
A = 10011101
Instruksi Logika:
ANI (and immediate)
 Instruksi
ini berfungsi melakukan operasi AND isi
akumulator dengan suatu nilai 8 bit.
 Format instruksi :
ANI byte
 Contoh:


Misal nilai akumulator saat ini adalah
A = 00101100 dan
data = 11111110
Setelah instruksi ANI FEH
A = 00101100
23
11/20/2015
Instruksi Logika:
ORI (or immediate)
 Instruksi
ini berfungsi melakukan operasi OR isi
akumulator dengan suatu nilai 8-bit.
 Format instruksi :
ORI byte
 Contoh:
Misal nilai akumulator saat ini adalah
A = 00101101 dan
data = 10101010
Setelah instruksi ORI AAH
A = 10101111

Instruksi Logika:
XRI (xor immediate)
 Instruksi
ini berfungsi melakukan operasi XOR
akumulator dengan suatu nilai 8-bit.
 Format instruksi :
XRI byte
isi
 Contoh:
Misal nilai akumulator saat ini adalah
A = 00101101 dan
data = 10101010
Setelah instruksi XRI AAH
A = 10000111

24
11/20/2015
Instruksi Lain-Lain (1)



NOP (no operation)

Prosesor tidak melakukan apa-apa.

Digunakan sebagai jeda

Sering digunakan pada proses pipeline, yaitu upaya peningkatan
kecepatan proses dengan melaksanakan beberapa instruksi secara
bersamaan
IN (input)

Untuk memindahkan data dari register masukan ke akumulator

Format instruksi : IN byte (IN 100001101)
HLT (HALT)


Sebagai tanda akhir dari program
OUT (output)

Memindahkan data dari akumulator ke register keluaran
Instruksi Lain-Lain (2)

RAL (Rotate the accumulator left)
 Memutar nilai akumulator ke kiri satu bit
 Misal A = 11001000
 Setelah instruksi RAL A = 10010001

RAR (Rotate the accumulator right)
 Memutar nilai akumulator ke kanan satu bit
 Misal A = 11001000
 Setelah instruksi RAR maka nilai A = 01100100
25
11/20/2015
Daftar Pustaka
Albert Paul Malvino, Ph.D., Digital Computer Electronics, 3rd
Edition
26
Download