Anda di halaman 1dari 57

SAP-2 merupakan tahap berikutnya dalam

evolusi menuju ke komputer modern.


Register dibuat 2 arah, alamat 16 bit,
tambah register, flag

kaki-kaki input dan output dari register


dihubung singkat (dijadikan satu) sehingga
hanya ada sekelompok kawat yang
terhubung ke bus.
Jika LOAD aktif maka sebuah kata biner
mengalir dari bus ke register (saluran
output dalam kondisi mengambang); jika
ENABLE aktif maka sebuah kata biner
mengalir dari register ke bus (saluran
input dalam kondisi mengambang).
Lintasan bersifat bidirectional

Koneksi register ke bus W berupa saklar 3keadaan, sedangkan yang tidak terhubung ke
bus bersifat 2-keadaan.
Seperti Sap-1, pengendali-pengurut
mengirimkan sinyal-sinyal kendali ke setiap
register.

SAP-2 memiliki 2 port (bandar) input,


bernomor 1 dan 2.
keyboard heksadesimal dihubungkan
dengan port 1untuk memasukkan instruksi
dan data heksadesimal.
keyboard mengirimkan sinyal READY ke bit
0 dari port 2, sinyal ini menunjukan kapan
data di port 1 telah menjadi valid.
SERIAL IN memasuki kaki 7 dari port 2.

Program Counter memiliki 16-bit :


dari

0000 0000 0000 0000 (0000H;0D)


sampai 1111 1111 1111 1111 (FFFFH;65.535D)

Sinyal rendah ke CLR akan mereset PC di


awal penggunaan komputer, sehingga
pemrosesan selalu dimulai dengan instruksi
yang tersimpan di lokasi memori 0000H.

Selama Fetch Cycle, MAR menerima


alamat 16-bis dari PC
Output 2-keadaan dari MAR lalu
mengirimkan alamat lokasi memori yg
diinginkan
Memori memiliki ROM 2K (0000H-07FFH)
yang berisi program monitor
Program tsb menginisialisasi komputer
pada waktu dinyalakan, menafsirkan
masukan keyboard, dsb.
Sisa memori sistem: RAM 62K yang
beralamat 0800H - FFFFH

MDR merupakan sebuah register buffer 8-bit


output register ini mengaktifkan RAM
MDR menerima data dari bus sebelum
berlangsung operasi write; MDR mengirim
data ke bus sesudah operasi read

SAP-2 memiliki instruksi lebih banyak dari SAP-1


digunakan opcode 8-bit sehingga mampu
menampung 256 instruksi
SAP-2 memiliki 42 instruksi
Penggunaan opcode 8-bit memungkinkan
kompatibilitas dengan perangkat 8080/8085
(seluruh instruksi SAP identik dengan instruksi
8080/8085)

Pengendali-pengurut menghasilkan kata-kata


kendali atau mikroinstruksi yang akan
mengkoordinasikan operasi komputer
Karena perangkatnya lebih banyak, maka
kata CON SAP-2 menjadi lebih panjang
Prinsip kerjanya sama dengan SAP-1

Output 2-keadaan dari accumulator dikirim


ke ALU; sedangkan output 3-keadaan
dihubungkan ke bus W.
secara kontinu menggerakkan ALU

ALU memiliki 4 atau lebih bit kendali yang


menentukan operasi aritmatika atau logika
Flag (bendera) merupakan sebuah flip-flop
yang mengikuti dan mengawasi perubahan
keadaan selama komputer beroperasi
SAP-2 memiliki 2 macam flag:
sign

diaktifkan (value=1) jika isi accumulator negatif

zero

flag (S)
flag (Z)

diaktifkan (value=1) jika isi accumulator nol

Register TMP berfungsi utuk menahan data


yang akan dikenai operasi dengan isi
accumulator
Register B dan C secara bebas bisa
digunakan, sehingga pemindahan data dapat
dilakukan secara lebih fleksibel

SAP-2 memiliki 2 port output, bernomor 3


dan 4
Isi accumulator dapat dimasukkan ke port
3 untuk menggerakkan peraga
heksadesimal
Isi accumulator juga dapat dimasukkan ke
port 4 untuk mengirim datanya secara
serial keluar
Kaki 7 dari output port 4 mengirimkan
sinyal ACKNOWLEDGE ke keyboard
Sinyal ACK dan sinyal READY digunakan
untuk proses handshaking

Fetch Cycle SAP-2 meliputi keadaan T1


(alamat), keadaan T2 (penambahan) dan
keadaan T3 (memori) semua MRI
Selama Execution Cycle, memori mungkin
digunakan dan mungkin tidak, tergantung
tipe instruksi yang diambil
MRI merupakan contoh instruksi yang
menggunakan memori

LDA (Load the Accumulator) : mengisi


accumulator dengan data dari memori
dengan alamat yang ditentukan (0000H
FFFFH)
LDA 2000H

STA (Store the Accumulator) : simpan isi dari


accumulator ke memori dengan alamat yang
ditentukan
STA 7A7AH

MVI (Move Immediate) : pindahkan segera ke


register tertentu data operand yang
mengikutinya

Opcode

MVI A, 37H

Operand

MRI relatif lambat pelaksanaannya karena


memerlukan lebih dari satu operasi akses
memori selama siklus instruksi
Selain itu ada kebutuhan pemindahan data
dari register ke register tanpa melalui
memori

MOV (Move) : pindahkan data dari suatu


register ke register lainnya
MOV

A, B

Operasi ini tidak bersifat merusak, artinya


data di B hanya disalin, tetapi tidak dihapus

ADD : tambahkan data dari register tertentu


dengan data di accumulator
ADD

SUB : kurangkan data dari register tertentu


dari data di accumulator
SUB

INR (increment) : tambahkan isi register


tertentu dengan 1 (x = x + 1)
INR

DCR (decrement) : kurangi isi register


tertentu dengan 1 (x = x 1)
DCR

SAP-2 memiliki 3 instruksi JUMP yang dapat


mengubah urutan program

JMP (jump) : ambil instruksi selanjutnya di


lokasi memori yang telah ditunjuk alamatnya
JMP

3000H

Saat perintah ini dieksekusi, isi PC diubah


nilainya dengan operand dari instruksi
tersebut, sehingga instruksi selanjutnya
diambil dari alamat baru tersebut

JM (Jump if Minus) : lompat ke lokasi memori


tertentu jika isi accumulator minus (sign flag
S bernilai 1)

Jika syarat lompatan tidak terpenuhi (S=0),


maka nilai PC tidak berubah (tetap)
JM

3000H

JZ (Jump if Zero) : lompat ke lokasi memori


tertentu jika isi accumulator nol (zero flag Z
bernilai 1)
JZ

3000H

JNZ (Jump if Not Zero) : lompat ke lokasi


memori tertentu jika isi accumulator tidak
nol (zero flag Z bernilai 0)
JNZ

3000H

Subroutine adalah suatu program kecil


yang disimpan dalam memori untuk
digunakan oleh program lain
CALL (Call the SubRoutine) : mnemonic
untuk memanggil subroutine
instruksi CALL harus diikuti dengan alamat
awal dari lokasi subroutine disimpan
CALL

5000H

RET (Return) : kembali ke posisi program


semula

instruksi RET memberi tahu bahwa operasi


(subroutine) telah selesai
RET

Ketika instruksi CALL dilaksanakan, isi


PC secara otomatis disimpan pada
lokasi memori FFFEH dab FFFFH (dua
lokasi memori terakhir)

Alamat CALL kemudian diisikan ke PC,


sehingga instruksi selanjutnya yang
dieksekusi adalah instruksi pertama dari
subroutine

Setelah routine selesai dilaksanakan,


instruksi RET akan mengatur agar
alamat pada lokasi memori FFEH dan
FFFFH disikan kembali ke PC, sehingga
akan mengembalikan kendali ke
program semula

CMA (Complement the Accumulator) :


komplemenkan isi accumulator (komplemen1)
CMA

ANA (AND the Accumulator) : AND-kan isi


accumulator dengan isi register tertentu
ANA

ORA (OR the Accumulator) : OR-kan isi


accumulator dengan isi register tertentu
ORA

XRA (XOR the Accumulator) : XOR-kan isi


accumulator dengan isi register tertentu
XRA C

ANI (AND Immediate) : AND-kan isi


accumulator dengan byte yang
mengikuti opcode
ANI,

ORI (OR Immediate) : OR-kan isi


accumulator dengan byte yang
mengikuti opcode
ORI,

C7H

A5H

XRI (XOR Immediate) : XOR-kan isi


accumulator dengan byte yang
mengikuti opcode
XRI,

4DH

NOP (No Operation) : jangan lakukan apapun


Tidak ada register yang isinya berubah
Biasanya digunakan untuk menunda
pemrosesan data
NOP

HLT (Halt) : hentikan pemrosesan


HLT

IN (Input) : pindahkan data dari port


tertentu (1 atau 2) ke accumulator
IN

02H input dari port 2

OUT (Output) : pindahkan isi accumulator


ke port output tertentu (3 atau 4)
OUT

04H output ke port 4

RAL (Rotate the Accumulator Left) : putar


isi accumulator ke kiri
Geser

semua bit ke kiri, pindahkan MSB ke LSB

RAL

RAR (Rotate the Accumulator Right) :


putar isi accumulator ke kanan
Geser

MSB
RAR

semua bit ke kanan, pindahkan LSB ke

Controller-Sequencer SAP-2 dimikroprogram


dengan sebuah siklus mesin variabel, ini
berarti bahwa beberapa instruksi tertentu
bisa memiliki waktu eksekusi yang lebih
lama dibanding yang lain
Khusus untuk instruksi JM, JNZ & JZ
(lompatan bersyarat) bisa 10 atau 7
keadaan
Jika

syarat terpenuhilompat, maka butuh 10 T


Jika syarat tidak terpenuhitidak lompat, maka
hanya butuh 7 T

SAP-2 memiliki 2 macam flag:


sign

diaktifkan (value=1) jika isi accumulator negatif

zero

flag (S)
flag (Z)

diaktifkan (value=1) jika isi accumulator nol

Flag dipengaruhi hasil operasi (yang tentu


saja berpengaruh juga pada accumulator)

Label adalah tanda bantu yang khusus


dipakai untuk instruksi jump atau call
karena

sulit bagi programmer untuk


membayangkan ke lokasi memori berapa
lompatan akan dilakukan
Program lebih mudah dipahami
Program asembler akan membaca label
tersebut & secara otomatis menentukan
alamat yang sesuai
Label diikuti : (sbg tanda bagi program
asembler), maksimal 6 karakter & diawali dg
huruf

Dalam menulis/membaca sebuah program,


akan lebih membantu jika disertai komentar

Komentar ditulis dibelakang tanda ; (ASCII


= 3BH), sehingga akan diabaikan oleh
program asembler

Operasi perkalian m*n dilakukan dengan


melakukan penjumlahan m berulang kali
sebanyak n kali :
m

+m+m++m

Kebanyakan mikroprosesor tidak memiliki


perangkat keras perkalian

Handshaking merupakan interaksi antara


CPU dan piranti periferal yang
berlangsung selama pemindahan data I/O.
Urutan jabat tangan SAP-2 :
Saat

data 2 digit telah dimasukkan ke encoder


heksadesimal, bit READY (bit 0 port 2) menjadi
tinggi
Data dari port 1 kemudian dimasukkan ke CPU
Bit ACKNOWLEDGE (bit 7 port 4) dibuat
menjadi tinggi & me-reset bit READY
Me-reset bit ACKNOWLEDGE

Anda mungkin juga menyukai