::. MATA KULIAH MIKROPROSESSOR .:: [ :: SAP - 2 :: TEORI, IMPLEMENTASI & APLIKASI ] 1 ::. MATA KULIAH MIKROPROSESSOR .:: SAP - 2< Evolusi ke Komputer Modern > Arsitektur lebih lengkap dibanding SAP-1 Instruksi lebih banyak termasuk jump (Lompat) Menggunakan Register dua Arah LOAD CLK Enable BUS 2 ::. MATA KULIAH MIKROPROSESSOR .:: Bus W Encoder Hexa 8 A 8 ALU ARSITEKTUR SAP-2 8 8 Ack 8 In Port 2 8 PC 16 MAR 2 Flag 8 In Port 1 TEMP 8 B 16 8 C MDR 8 8 Out Port 3 IR 8 8 Out Port 4 16 8 Memori 8 8 0 7 Hexa Disp Serial Out Ack Memiliki saluran 16-bit PC=0000 0000 0000 0000 Sampai : PC=1111 1111 1111 1111 Atau PC=0000 H – FFFF H Instruksi selalu mulai : 0000 H 0000 H Instruksi pertama 0001 H Instruksi kedua 0002 H Instruksi ketiga dst 8 Ready 0 7 Serial In PC < Program Counter > CON 3 ::. MATA KULIAH MIKROPROSESSOR .:: Bus W Encoder Hexa 8 A 8 ALU ARSITEKTUR SAP-2 8 8 Ack 8 In Port 2 8 PC 16 MAR 16 2 Flag 8 In Port 1 8 Menerima alamat 16-bit Keluaran 2-state ke memori TEMP 0000 H 8 B 8 C ROM 07FF H 0800 H 16 RAM Memori 8 FFFF H MDR 8 IR 8 8 Ready 0 7 Serial In MAR & Memori 8 Out Port 3 8 0 8 Out Port 4 7 Hexa Disp Serial Out Ack ROM 2KB berisi program Monitor Inisialisasi saat dinyalakan CON 4 ::. MATA KULIAH MIKROPROSESSOR .:: Bus W Encoder Hexa 8 A ARSITEKTUR SAP-2 8 8 Ack 8 8 ALU In Port 2 8 8 TEMP PC 16 8 B MAR 16 8 C MDR 8 8 Out Port 3 IR 8 8 Out Port 4 2 Flag 8 Hexa Disp Memori MDR<Memory Data Register> Keluaran MDR aktifkan RAM. Menerima data dari bus, sblm operasi menulis ke RAM Mengirim data ke bus, stlh operasi membaca dari RAM 8 0 7 Serial Out Ack 8 Ready 0 7 Serial In 16 8 In Port 1 CON 5 ::. MATA KULIAH MIKROPROSESSOR .:: Bus W Encoder Hexa 8 A ARSITEKTUR SAP-2 8 8 Ack 8 8 ALU In Port 2 8 8 TEMP PC 16 8 B MAR 16 8 C MDR 8 8 Out Port 3 IR 8 8 Out Port 4 2 Flag 8 Hexa Disp Register Instruksi < IR > IR 8-bit mampu menampung 2^8 = 256 Instruksi. SAP-2 hanya 42 Instruksi Kompatibel dengan 8080 / 8085 Memori 8 0 7 Serial Out Ack 8 Ready 0 7 Serial In 16 8 In Port 1 CON 6 ::. MATA KULIAH MIKROPROSESSOR .:: Bus W Encoder Hexa 8 A ARSITEKTUR SAP-2 8 8 Ack 8 8 ALU In Port 2 8 8 TEMP PC 16 8 B MAR 16 8 C 2 Flag Pengendali-Pengurut Menghasilkan kata kendali atau mikroinstruksi SAP-2 lebih banyak Instruksi, pengendalilebih rumit. Kata CON lebih panjang Memori 8 MDR 8 IR 8 8 Ready 0 7 Serial In 16 8 In Port 1 8 Out Port 3 8 Out Port 4 8 0 7 Hexa Disp Serial Out Ack Akumulator Register 2 Arah Keluaran 3-state ke bus W Terus menerus menggerakkan ALU CON 7 ::. MATA KULIAH MIKROPROSESSOR .:: Bus W Encoder Hexa 8 A ARSITEKTUR SAP-2 8 8 Ack 8 8 ALU In Port 2 8 8 TEMP PC 16 8 B MAR 16 8 C MDR 8 8 Out Port 3 IR 8 8 Out Port 4 2 Flag Memori 8 8 0 7 Hexa Disp Serial Out Ack ALU & FLAG SAP-2 mengandung operasi Aritmatik & Logika FLAG Untuk mengawasi / mengikuti perubahan keadaan selama beroperasi. Sign Flag : aktif bila A berubah menjadi negatif Zero Flag : aktif bila A menjadi nol. 8 Ready 0 7 Serial In 16 8 In Port 1 CON 8 ::. MATA KULIAH MIKROPROSESSOR .:: Bus W Encoder Hexa 8 A ARSITEKTUR SAP-2 8 8 Ack 8 8 ALU In Port 2 8 8 TEMP PC 16 8 B MAR 16 8 C MDR 8 8 Out Port 3 IR 8 8 Out Port 4 2 Flag 8 Hexa Disp Memori 8 8 Ready 0 7 Serial In 16 8 In Port 1 0 7 Serial Out Ack Register TMP, B dan C TMP : pengganti register B Register B dan C berfungsi sama untuk menyimpan data sementara selama operasi dilakukan. Input Port SAP-2 mempunyai 2 Input Port. Encoder keyboard Hexa ke Input Port 1 Serial data ke Input Port 2 line 7 CON 9 ::. MATA KULIAH MIKROPROSESSOR .:: Bus W Encoder Hexa 8 A ARSITEKTUR SAP-2 8 8 Ack 8 8 ALU In Port 2 8 8 TEMP PC 16 8 B MAR 16 8 C MDR 8 8 Out Port 3 IR 8 8 Out Port 4 2 Flag 8 Hexa Disp Memori 8 0 7 Serial Out Ack 8 Ready 0 7 Serial In Output Port Mempunyai 2 Output Port Output Port 3 ke Peraga Hexa Output Port 4 ke Serial Out line 0 16 8 In Port 1 CON 10 ::. MATA KULIAH MIKROPROSESSOR .:: Perangkat Instruksi < Instruction Set > Operasi dasar yang dapat dilakukan dengan perintah / program. LDA < Load Data Accumulator > Isi Akumulator dengan isi dari lokasi memori Contoh : LDA 2000H ; /* Isikan Akumulator dengan isi alamat 2000H */ Operan Operasi STA < Store Accumulator > Simpan Isi Akumulator ke lokasi memori yang ditunjuk Contoh : STA 7FFFH ; /* Simpan Isi Akumulator ke alamat 7FFFH */ 11 ::. MATA KULIAH MIKROPROSESSOR .:: Perangkat Instruksi < Instruction Set > MVI < Move immediate > Pindahkan Segera Mengisi Register dengan bilangan yang mengikutinya Contoh : MVI A, 37H ; /* Isikan Akumulator dengan bilangan 37H */ Jika eksekusi perintah ini, maka : A =0011 0111 Format Instruksi : MVI A, byte MVI B, byte MVI C, byte 12 ::. MATA KULIAH MIKROPROSESSOR .:: INSTRUKSI OP CODE ADD B ADD C ANA B ANA C ANI byte CALL alamat CMA DCR A DCR B DCR C HLT IN byte INR A INR B INR C JM alamat JMP alamat JNZ alamat JZ alamat LDA alamat MOV A,B MOV A,C 80 81 A0 A1 E6 CD 2F 3D 05 0D 76 DB 3C 04 0C FA C3 C2 CA 3A 78 79 INSTRUKSI MOV B,A MOV B,C MOV C,A MOV C,B MVI A, byte MVI B, byte MVI C, byte NOP ORA B ORA C ORI byte OUT byte RAL RAR RET STA alamat SUB B SUB C XRA B XRA C XRI byte OP CODE 47 41 4F 48 3E 06 0E 00 B0 B1 F6 D3 17 1F C9 32 90 91 A8 A9 EE 13 ::. MATA KULIAH MIKROPROSESSOR .:: Perangkat Instruksi < Instruction Set > Contoh : Bahasa Mesin 8080/8085 Alamat Isi 2000H 2001H 2002H 2003H 2004H 2005H 2005H 2006H 2007H 2009H 3EH 49H 06H 4AH 0EH 4BH 32H 85H 62H 76H Mnemonik MVI A, 49H Jumlah 2-byte MVI B, 4AH 2-byte MVI C, 4BH 2-byte STA 6285H 3-byte HLT 1-byte 14 ::. MATA KULIAH MIKROPROSESSOR .:: Instruksi-Instruksi Register MRI=Memory Reference Instruction Lebih lambat karena memerlukan lebih dari 1 operasi akses memori. Sedangkan Instruksi Register memindahkan data dari Register ke Register yang lain MOV Memindahkan data dari satu register ke register yang lain. Contoh : MOV A, B. /* Pindahkan data dalam Register B ke Akumulator */ 15 ::. MATA KULIAH MIKROPROSESSOR .:: Instruksi-Instruksi Register ADD Tambahkan isi Register dengan Isi Akumulator Contoh : ADD B Jika : A = 04 H dan B = 02 H, maka eksekusi ADD B menghasilkan : A = 06 H SUB Kurangkan isi Register dengan Isi Akumulator Jika : C = 03 H, maka eksekusi SUB C diperoleh A = 03 H 16 ::. MATA KULIAH MIKROPROSESSOR .:: Instruksi-Instruksi Register INR Penambahan isi Register dengan satu angka Contoh : INR B Jika : B = 09 H, maka eksekusi INR B menghasilkan : B = 0A H DCR Pengurangan isi Register dengan satu angka Jika : C = 03 H, maka eksekusi DCR C diperoleh C = 02 H 17 ::. MATA KULIAH MIKROPROSESSOR .:: CONTOH : Tambahkan bilangan 25 dan 55, simpan hasilnya pada lokasi memori 5000 H dan tambahkan hasilnya dengan 1, serta simpan di register B. MVI A, 19 H ; Isikan Accumulator dengan 25 MVI B, 37 H ; Isikan Register B dengan 55 ADD B ; Tambahkan Register B dengan Acc STA 5000H ; Simpan Acc pada alamat 5000H INR A ; Tambahkan Isi Acc dengan 1 MOV B,A ; Simpan Isi Acc pada Register B HLT ; Berhenti 18 ::. MATA KULIAH MIKROPROSESSOR .:: INSTRUKSI JUMP DAN CALL : JMP Mengambil Instruksi berikutnya pada Alamat yang ditunjuk Selalu diikuti Alamat yang diisikan ke Pencacah Program Tanpa syarat JM Jump if Minus < Lompat ke Alamat yang ditunjuk Jika A bernilai Minus > SAP-2 mempunyai Zero Flag (Z) dan Sign Flag (S) S = 0 jika A >= 0 dan S = 1 jika A < 0 Lompat dengan Syarat jika S = 1 19 ::. MATA KULIAH MIKROPROSESSOR .:: INSTRUKSI JUMP DAN CALL : JZ Jump if Zero < lompat ke Alamat yang ditunjuk Jika A bernilai Nol > Z = 1 jika A = 0 dan Z = 0 jika A~= 0 Lompat dengan Syarat Z = 1 JNZ Jump if Not Zero < Lompat ke Alamat yang ditunjuk Jika A tidak sama dengan Nol > Lompat dengan Syarat jika Z = 0 20 ::. MATA KULIAH MIKROPROSESSOR .:: ILUSTRASI : ILUSTRASI : 2000 H --------------------2005 H JMP 3000 H 2006 H ------------------------------3000 H --------------------- 2000 H --------------------2005 H JM 3000 H 2006 H ------------------------------3000 H --------------------- Tanpa Syarat Jika S = 1 21 ::. MATA KULIAH MIKROPROSESSOR .:: ILUSTRASI : 2000 H --------------------2005 H JZ 3000 H 2006 H ------------------------------3000 H --------------------- Jika Z = 1 ILUSTRASI : 2000 H --------------------2005 H JNZ 3000 H 2006 H ------------------------------3000 H --------------------- Jika Z = 0 22 ::. MATA KULIAH MIKROPROSESSOR .:: ILUSTRASI : 2000 H --------------------2005 H CALL 5000 H 2006 H ------------------------------5000 H ------------------------------RET ILUSTRASI : Alamat Isi 2000 H 2001 H 2002 H 2003 H 2004 H 2005 H 2006 H 2007 H 2008 H 2009 H Simbol 0E H MVI C,03 H 03 H 0D H DCR C CA H JZ 2009 H 09 H 20 H C3 H JMP 2002H 02 H 20 H 76 H HLT 23 ::. MATA KULIAH MIKROPROSESSOR .:: LOOP DAN LABEL : LOOP < Simpal > Bagian dari Program yang diulang-ulang Lihat Ilustrasi LABEL Tanda bantu yang digunakan untuk instruksi lompat dan panggil Diakhiri dengan : < titik dua > Terdiri dari 1 – 6 karakter, yang pertama selalau huruf. 24 ::. MATA KULIAH MIKROPROSESSOR .:: ILUSTRASI : Label Mnemonik Komentar MVI A,00 H ; Kosongkan Akumulator MVI B,0C H ; Isikan desimal 12 ke B MVI C,08 H ; Preset C dengan 8 REPEAT : ADD B ; Tambahkan dengan 12 DCR C ; Kurangi isi C dengan 1 JZ DONE ; Lompat ke DONE JMP REPEAT; Ulangi / Lompat DONE : HLT ; Berhenti 25 ::. MATA KULIAH MIKROPROSESSOR .:: INSTRUKSI LOGIKA : CMA Complement the Accumulator < Komplemenkan isi Akumulator > Melakukan komplemen-1 pada Isi Akumulator ANA AND-kan Isi Akumulator dengan isi Register tertentu Contoh : ANA B ; AND-kan Isi Akumulator dengan isi Register B Jika : A = 1110 1010 B = 1000 0101 Maka Eksekusi dari ANA B menghasilkan : A = 1000 0000 26 ::. MATA KULIAH MIKROPROSESSOR .:: INSTRUKSI LOGIKA : ORA OR –kan Isi Akumulator dengan Isi Register tertentu Jika : A = 1110 1010 B = 1000 0101 ; maka Eksekusi ORA B menghasilkan : A = 1110 1111 •XRA – XOR-kan Isi Akumulator dengan isi Register tertentu – Contoh : XRA B ; AND-kan Isi Akumulator dengan isi Register B – Jika : A = 1110 1010 – B = 1000 0101 ; Maka Eksekusi XRA B menghasilkan : A = 0110 1111 27 ::. MATA KULIAH MIKROPROSESSOR .:: INSTRUKSI LOGIKA : ANI AND –kan segera Isi Akumulator dengan Byte tertentu Jika : A = 1110 1010, Maka Eksekusi ANI C7 H menghasilkan : = 1100 0111 < C7 H > A = 1100 0010 •ORI OR-kan Segera Isi Akumulator dengan Byte tertentu Eksekusi ORI C7 H menghasilkan : A = 1100 0111 XRI XOR-kan Segera Isi Akumulator dengan Byte Tertentu 28 ::. MATA KULIAH MIKROPROSESSOR .:: INSTRUKSI LAINNYA : NOP No Operation ( tidak ada oprasi ) Untuk pengaturan waktu atau Waktu tunda Jika 1 NOP = 4 T, maka 100 NOP menunggu 400 T IN Instruksi untuk memberi masukan Memindahkan data dari Input Port ke Akumulator Contoh : IN 02 H ; Memindahkan data dari Port 2 ke Akumulator OUT Memindahkan Isi Akumulator ke Output Port Contoh : OUT 03 H ; Pindahkan Isi Akumulator ke Output Port 3 29 ::. MATA KULIAH MIKROPROSESSOR .:: INSTRUKSI LAINNYA : RAL Rotate the Accumulator Left < Putar akumulator ke kiri > RAR Rotate the Accumulator Right < Putar akumulator ke kanan > Jika A = 0100 1001, maka Eksekusi : RAL A = 1001 0010 RAR A = 1010 0100 MSB LSB MSB LSB 30 ::. MATA KULIAH MIKROPROSESSOR .:: ILUSTRASI : Label Mnemonik MVI A,00 H MVI B,0C H MVI C,08 H REPEAT : ADD B DCR C JZ DONE DONE : Waktu ;1x7xT ;1x7xT ;1x7xT ;4x8xT ;4x8xT ; 7 x 7 x T (tanpa Lompatan) ; 10 x 1 x T (dengan Lompatan) JMP REPEAT; 10 x 7 x T (dengan Lompatan) HLT ;5x1xT 31 ::. MATA KULIAH MIKROPROSESSOR .:: ::. Terima Kasih .:: 32