SAP2 Evolusi SAP2 merupakan tahap berikutnya dalam evolusi
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 1 untuk 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 H; 0 D) – sampai 1111 (FFFFH; 65. 535 D) • Sinyal rendah ke CLR akan mereset PC di awal penggunaan komputer, sehingga pemrosesan selalu dimulai dengan instruksi yang tersimpan di lokasi memori 0000 H.
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 2 K (0000 H-07 FFH) yang berisi program monitor • Program tsb menginisialisasi komputer pada waktu dinyalakan, menafsirkan masukan keyboard, dsb. • Sisa memori sistem: RAM 62 K yang beralamat 0800 H - 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
Memory-Reference Instruction • Fetch Cycle SAP-2 meliputi keadaan T 1 (alamat), keadaan T 2 (penambahan) dan keadaan T 3 (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 (0000 H – FFFFH) – LDA 2000 H • STA (Store the Accumulator) : simpan isi dari accumulator ke memori dengan alamat yang ditentukan – STA 7 A 7 AH
MRI : MVI • MVI (Move Immediate) : pindahkan segera ke register tertentu data operand yang mengikutinya – MVI A, 37 H Opcode Operand
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 3000 H • 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 3000 H
Jump & Call : JZ & JNZ • JZ (Jump if Zero) : lompat ke lokasi memori tertentu jika isi accumulator nol (zero flag Z bernilai “ 1”) – JZ 3000 H • JNZ (Jump if Not Zero) : lompat ke lokasi memori tertentu jika isi accumulator tidak nol (zero flag Z bernilai “ 0”) – JNZ 3000 H
Jump & Call : CALL & RET • Subroutine adalah suatu program kecil yang disimpan dalam memori untuk digunakan oleh program lain • CALL (Call the Sub. Routine) : mnemonic untuk memanggil subroutine • instruksi CALL harus diikuti dengan alamat awal dari lokasi subroutine disimpan – CALL 5000 H
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) : ANDkan 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) : XORkan 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, C 7 H • ORI (OR Immediate) : OR-kan isi accumulator dengan byte yang mengikuti opcode – ORI, A 5 H • XRI (XOR Immediate) : XOR-kan isi accumulator dengan byte yang mengikuti opcode – XRI, 4 DH
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 – HLT • IN (Input) : pindahkan data dari port tertentu (1 atau 2) ke accumulator – IN 02 H input dari port 2 • OUT (Output) : pindahkan isi accumulator ke port output tertentu (3 atau 4) – OUT 04 H 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 terpenuhi lompat, maka butuh 10 T – Jika syarat tidak terpenuhi tidak 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 = 3 BH), 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 (57 H) dalam bentuk aliran serial (600 bit per detik) dan menyimpannya ke lokasi memori 2100 H
- Slides: 58