• ADD
- Untuk menjumlahkan isi accumulator dengan data
memori
- Contoh : ADD 8H
• SUB
- Untuk mengurangkan isi accumulator dengan isi register
B
- Contoh : SUB DH
2
Arsitektur SAP-2
3
Register Masukan
4
Pencacah Program & MAR
PENCACAH PROGRAM
• Lebar 16-bit (0000 H – FFFF H)
• Nilai pencacah 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
pencacah dengan bus W ada 2
• 1 jalur untuk mengirim nilai
• 1 jalur untuk menerima
jump
MAR
• Menerjemahkan alamat dari PC
untukdiproses ke memori
5
Memori 64 KB
6
Memori Data Register
7
Register Instruksi (IR) & Controller/Sequencer (CS)
REGISTER INSTRUKSI
• Instruksi lebarnya 8-bit (sama
dg prosesor 8080/8085 dari
intel) untuk diteruskan ke
controller/ sequencer
• Jumlah instruksi yang bisa
dimiliki 28 = 256 buah
• SAP-2 hanya punya 42 instruksi
CONTROLLER/SEQUENCER
• Instruksi dari IR akan
diterjemahkan mejadi sinyal
kontrol (CON)
8
Akumulator A & ALU
AKUMULATOR
• Untuk menyimpan sementara
hasil operasi ALU
• Data dari bus W bisa dari
memori atau hasil operasi ALU
• Keluaran data dpt ditransfer ke
register keluaran
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)
9
Register tmp, B, dan C
10
Register Keluaran 3 & 4
• Untuk mengkomunikasikan
hasil proses dengan pengguna.
• Pengguna dapat melihat
hasilnya lewat Peraga
Heksadesimal
11
Jalur 2 Arah (1)
12
Contoh Jalur 2 Arah pada Akumulator (2)
14
Operasional Code (1)
15
Operasional Code (2)
16
Operasional Code (3)
17
Operasional Code (4)
18
Jenis-jenis instruksi
° Instruksi lain-lain
19
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
• Eksekusi
- Melakukan eksekusi berdasarkan sinyal kontrol CON
20
MRI
° Contoh :
21
MRI - LDA
° Format instruksi :
LDA alamat
Contoh :
LDA 1500 H
22
MRI - STA
° Format instruksi :
STA alamat
Contoh :
STA 1501 H
° Format instruksi :
MOV register, byte
Contoh :
MOV A, 45 H
MOV B, 5E H
MOV C, F3H
Setelah 3 instruksi dijalankan, maka nilai
register A = 45H, B=5EH, C = F3H
24
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)
25
Instruksi antar Register – MOV (move register)
° Format instruksi :
MOV register, register
Contoh :
MOV A, B
MOV B, C
MOV C, A
26
Instruksi antar Register – ADD & SUB
° Format instruksi :
ADD register
SUB register
Contoh :
ADD C
SUB B
27
Instruksi antar Register – INR & DCR
° Format instruksi :
INR register
DCR register
Contoh :
INR A nilai A = A + 1
DCR B nilai B = B - 1
28
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)
29
Instruksi Jump – JMP
° Format instruksi :
JMP alamat
Contoh :
JMP 2500 H
° Format instruksi :
JM alamat
Contoh :
Asumsi nilai reg A = 45H, B = 10H, C = 60H
31
Instruksi Jump – JZ (Jump if Zero)
° Format instruksi :
JZ alamat
Contoh :
JZ 2500 H
° Format instruksi :
JNZ alamat
Contoh :
JNZ 2500 H
34
Instruksi CALL & RETURN
° Format instruksi :
CALL alamat
Contoh :
Misal kita punya subrutin faktorial di alamat
4000H sampai 4500 H . Untuk memanggil
subrutin faktorial tersebut dilakukan
pemanggilan berikut :
CALL 4000 H
35
Contoh CALL & RETURN di SAP-2
36
Contoh CALL & RETURN di SAP-2
37
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)
• XRI (xor immediate)
38
Instruksi Logika – CMA (complement the accumulator)
° Format instruksi :
CMA
Contoh :
Misal nilai akumulator saat ini adalah A = 00101100
Setelah instruksi CMA A = 11010011
39
Instruksi Logika – ANA (and the accumulator)
° Format instruksi :
ANA register
Contoh :
Misal nilai akumulator saat ini adalah A = 00101100
B = 00011001
Setelah instruksi ANA B = 00001000
40
Instruksi Logika – ORA (or the accumulator)
° Format instruksi :
ORA register
Contoh :
Misal nilai akumulator saat ini adalah A = 00101100
B = 00011001
Setelah instruksi ORA B = 00111101
41
Instruksi Logika – XRA (xor the accumulator)
° Format instruksi :
XRA register
Contoh :
Misal nilai akumulator saat ini adalah A = 00101100
B = 00011001
Setelah instruksi XRA B = 00110101
42
Instruksi Logika – ANI (and immediate the accumulator)
° Format instruksi :
ANI byte
Contoh :
Misal nilai akumulator saat ini adalah A = 00101100
Setelah instruksi ANI 00110010 atau ANI 32H
A = 00100000
43
Instruksi Logika – ORI (or immediate the accumulator)
° Format instruksi :
ORI byte
Contoh :
Misal nilai akumulator saat ini adalah A = 00101100
Setelah instruksi ORI 00110010
A = 00111110
44
Instruksi Logika – XRI (xor immediate the accumulator)
° Format instruksi :
XRI byte
Contoh :
Misal nilai akumulator saat ini adalah A = 00101100
Setelah instruksi XRI 00110010
A = 00011110
45
Instruksi lain-lain (1)
° Contoh :
• 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
46
Instruksi lain-lain (2)
° Contoh :
• RAL (Rotate the accumulator left)
- Memutar nilai akumulator ke kiri satu bis
- Misal A = 11001000
- Setelah instruksi RAL A = 10010001
47