SAP-2
Evolusi SAP-2 merupakan tahap berikutnya dalam evolusi menuju ke komputer modern. Register dibuat 2 arah, alamat 16 bit, tambah register, flag
Register 2 arah 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
ARSITEKTUR SAP-2
Arsitektur
Arsitektur (2) Koneksi register ke bus W berupa saklar 3-keadaan, sedangkan yang tidak terhubung ke bus bersifat 2-keadaan. Seperti Sap-1, pengendali-pengurut mengirimkan sinyal-sinyal kendali ke setiap register.
Port Masukan 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 (PC) 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.
MAR dan Memori 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
Memory Data Register (MDR) 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
Instruction Register (IR) 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)
Controller-Sequencer 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
Accumulator Output 2-keadaan dari accumulator dikirim ke ALU; sedangkan output 3-keadaan dihubungkan ke bus W. secara kontinu menggerakkan ALU
ALU dan Flag 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 flag (S) diaktifkan (value=1) jika isi accumulator negatif zero flag (Z) diaktifkan (value=1) jika isi accumulator nol
Register TMP, B, dan C 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
Port Output 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
KODE OPERASI SAP-2
Memory-Reference Instruction SAP-2 INFORMATICS Memory-Reference Instruction SAP-2
Memory-Reference Instruction 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
MRI : LDA & STA 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
MRI : MVI MVI (Move Immediate) : pindahkan segera ke register tertentu data operand yang mengikutinya MVI A, 37H Operand Opcode
Register Instruction SAP-2
Register Instruction 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
Register Instruction : MOV 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
Register Instruction : ADD & SUB ADD : tambahkan data dari register tertentu dengan data di accumulator ADD B SUB : kurangkan data dari register tertentu dari data di accumulator SUB C
Register Instruction : INR & DCR INR (increment) : tambahkan isi register tertentu dengan 1 (x = x + 1) INR C DCR (decrement) : kurangi isi register tertentu dengan 1 (x = x – 1) DCR A
JUMP & CALL Instruction SAP-2
Jump & Call Instruction SAP-2 memiliki 3 instruksi JUMP yang dapat mengubah urutan program
Jump & Call : JMP 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
Jump & Call : JM 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
Jump & Call : JZ & JNZ 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
Jump & Call : CALL & RET 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
Jump & Call : CALL & RET RET (Return) : kembali ke posisi program semula instruksi RET memberi tahu bahwa operasi (subroutine) telah selesai RET
Jump & Call : CALL & 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
Jump & Call : CALL & RET
Logical Instruction SAP-2
Logical Instruction : CMA & ANA CMA (Complement the Accumulator) : komplemenkan isi accumulator (komplemen-1) CMA ANA (AND the Accumulator) : AND-kan isi accumulator dengan isi register tertentu ANA B
Logical Instruction : ORA & XRA ORA (OR the Accumulator) : OR-kan isi accumulator dengan isi register tertentu ORA B XRA (XOR the Accumulator) : XOR-kan isi accumulator dengan isi register tertentu XRA C
Logical Instruction : ANI, ORI, XRI ANI (AND Immediate) : AND-kan isi accumulator dengan byte yang mengikuti opcode ANI, C7H ORI (OR Immediate) : OR-kan isi accumulator dengan byte yang mengikuti opcode ORI, A5H XRI (XOR Immediate) : XOR-kan isi accumulator dengan byte yang mengikuti opcode XRI, 4DH
Instruksi Lain SAP-2
Instruksi Lain NOP (No Operation) : jangan lakukan apapun Tidak ada register yang isinya berubah Biasanya digunakan untuk menunda pemrosesan data NOP
Instruksi Lain (cont.) HLT (Halt) : hentikan pemrosesan 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
Instruksi Lain (cont.) 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 semua bit ke kanan, pindahkan LSB ke MSB RAR
Instruksi Lain (cont.)
TAMBAHAN SAP-2
Keadaan T 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
Bendera SAP-2 memiliki 2 macam flag: sign flag (S) diaktifkan (value=1) jika isi accumulator negatif zero flag (Z) diaktifkan (value=1) jika isi accumulator nol Flag dipengaruhi hasil operasi (yang tentu saja berpengaruh juga pada accumulator)
Bendera (cont.)
Label 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
Comment 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 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 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
Konversi : Serial Paralel Program memasukkan karakter 8-bit (57H) dalam bentuk aliran serial (600 bit per detik) dan menyimpannya ke lokasi memori 2100H