Simple As Possible (SAP) - 2 Abdul Syukur abdulsyukur@eng.uir.ac.id http://skurlinux.blogspot.com 053740514
Arsitektur Komputer SAP-2 Persamaan dengan SAP-1 : Sama-sama komputer bit. Kesamaan ini dapat dilihat dari data yang diolah oleh ALU SAP-2 yang masih bit. Serial In Keyboard Heksadesimal Register Masukan 1 Register Masukan 2 Program Counter MAR 16 Memori RAM 64 KB Memory Data Register Register Instruksi 16 16 16 W 16 Akumulator A ALU TEMP B C Register Keluaran 3 Peraga Heksadesimal 2 Flag Pengendali- Pengurut Register Keluaran 4 Serial Out CON
Perbedaan SAP-1 dengan SAP-2 Penambahan register-register baru. Penambahan lebar bus menjadi 16 bit (lebar data yang dioperasikan ALU tetap bit). RAM yang tersedia 64 KB. Penambahan kemampuan logika pada ALU. Adanya flag (bendera). Peningkatan jumlah instruksi dari 5 ke 43 instruksi (42 instruksi + 1 instruksi No operation).
Penambahan Register Register-register pada SAP-1 (5 buah) : Input Register dan MAR (1 buah) Output Register (1 buah) Register Instruksi (1 buah) Register Aritmatika (2 buah : A dan B) Register-register pada SAP-2 (11 buah) : Input Register (2 buah) Output Register (2 buah) Register Instruksi (1 buah) Register Aritmatika (4 buah : A, B, C, TMP) MAR (1 buah) Memory Data Register (MDR, 1 buah)
Penambahan Lebar Bus dan PC Penambahan lebar bus menjadi 16 bit untuk mendukung lebar alamat memori yang dikeluarkan oleh PC. PC mengeluarkan 16 bit alamat berarti dapat mengalamati 2 16 alamat = 65.536 alamat, dari 0000 H sampai FFFF H 65.536 alamat dengan tiap alamat bit maka : 65.536 * bit = 524.2 524.2 : 192 = 64 kbyte PC dapat menerima data masukan dari bus W yg bermanfaat untuk instruksi Jump dan pemanggilan subroutine.
RAM 64 KB Kapasitas RAM 64 kb dari alamat 0000 H sampai FFFF H. 2 kb pertama (0000 H s/d 07FF H) untuk program monitor : serangkaian program untuk menampilkan isi input register dan output register ke monitor. 62 kb berikutnya untuk instruksi dan data.
Kemampuan Logika ALU & Flag SAP-1 belum punya ALU tetapi hanya Penambah & Pengurang. SAP-2 sudah memiliki ALU. Adanya Flag : Sign Flag untuk menandai nilai pada register A negatif (sign flag = 1) atau positif (sign flag = 0). Zero Flag untuk menandai nilai pada register A nol (zero flag = 1) atau bukan nol (zero flag = 0).
Peningkatan Jumlah Instruksi Data yang masuk dari IR ke Pengendali & Pengurut sebanyak bit. bit ini menjadi alamat bagi Pengendali & Pengurut. Kemampuan pengalamatannya 2 = 256 alamat, dari 00 H sd FF H. Tiap alamat berisi 1 signal CON. Dari 256 signal CON didapat 43 instruksi.
Instruksi-Instruksi SAP-2 1. LDA (Load The Accumulator) Mengambil data dari memori dan dipindahkan ke Akumulator. Format : LDA alamat Contoh : LDA 1500H (isi reg A dgn nilai pada alamat 1500H) 2. STA (Store The Accumulator) Mengambil data dari Akumulator dan dipindahkan ke memori. Format : STA alamat Contoh : STA 1501H (isi RAM pada alamat 1501H denga nilai yg ada pada Akumulator)
Instruksi-Instruksi SAP-2 (2) 3. MVI (Move Immediate) Mengisi register aritmatika (A, B, C) dengan nilai tertentu. Format : Contoh : 4. MOV (Move) MVI register, nilai MVI B, C4H (isi register B dengan nilai C4H) Menyalin data dari satu register aritmatika ke register aritmatika lain. Format : Contoh : MOV register, register MOV B, C (isi register B dgn data pd register C).
Instruksi-Instruksi SAP-2 (3) 5 & 6. ADD dan SUB Menambah atau mengurang isi reg A dgn nilai register aritmatika lain dan hasil disimpan pada Akumulator. Format : ADD register atau SUB register Contoh : ADD B (A = A + B) SUB C (A = A C) 7 &. INR (Increment) dan DCR (Decrement) Menambah atau mengurangi isi sebuah register aritmatika dengan 1. Format : INR register atau DCR register Contoh : INR B (B = B + 1) DCR C (C = C 1)
Instruksi-Instruksi SAP-2 (4) 9. JMP (Jump) Instruksi lompatan untuk mengalihkan eksekusi program sesuai dengan alamat tujuan lompatan. Format : Contoh : JMP alamat JMP 27E1H PC 27E1H 10. JM (Jump if Minus) Instruksi lompatan bersyarat untuk mengalihkan eksekusi program sesuai dengan alamat tujuan lompatan jika sign flag berisi 1. Format : JM alamat Contoh : JM 3C2H
Instruksi-Instruksi SAP-2 (5) 11. JZ (Jump if Zero) Instruksi lompatan bersyarat untuk mengalihkan eksekusi program sesuai dengan alamat tujuan lompatan jika zero flag berisi 1. Format : JZ alamat Contoh : JZ 27E1H 12. JNZ (Jump if not Zero) Instruksi lompatan bersyarat untuk mengalihkan eksekusi program sesuai dengan alamat tujuan lompatan jika zero flag berisi 0. Format : JM alamat Contoh : JM 3C2H
Instruksi-Instruksi SAP-2 (9) 13. CMA (Complement the Accumulator) Instruksi ini akan membalikkan setiap bit dalam akumulator dan menghasilkan komplement 1 dari bilangan yang bersangkutan. Format : CMA Contoh : Nilai awal akumulator A = 1001 1010 Setelah instruksi CMA A = 0110 0101 14. ANA (AND the Accumulator) Instruksi ini meng-and-kan isi akumulator dengan isi register tertentu, hasilnya disimpan dalam akumulator. Format : ANA register Contoh : ANA B Misal A = 0110 0011 dan B = 1010 0110 Setelah instruksi ANA B, maka A = 0010 0010
Instruksi-Instruksi SAP-2 (10) 15. ORA (OR the Accumulator) Instruksi ini meng-or-kan isi akumulator dengan register tertentu, hasilnya disimpan dalam akumulator. Format : ORA register Contoh : ORA B Misal A = 0010 1100 dan B = 0001 1001 Setelah instruksi ORA B, maka A = 0011 1101 16. XRA (XOR the Accumulator) Instruksi ini meng-xor-kan isi akumulator dengan register tertentu, hasilnya disimpan dalam akumulator. Format : XRA register Contoh : XRA B Misal A = 0010 1100 dan B = 0001 1001 Setelah instruksi XRA B, maka A = 0011 0101
Instruksi-Instruksi SAP-2 (11) 17. ANI (AND Immediate the Accumulator) Instruksi ini meng-and-kan isi akumulator dengan suatu nilai. Format : ANI byte Misal A = 0010 1100 Setelah instruksi ANI 0011 0010, maka A = 0010 0000 1. ORI (OR Immediate the Accumulator) Instruksi ini meng-or-kan isi akumulator dengan suatu nilai. Format : ORI byte Misal A = 0010 1100 Setelah instruksi ORI 0011 0010, maka A = 0011 1110
Instruksi-Instruksi SAP-2 (12) 19. XRI (XOR Immediate the Accumulator) Instruksi ini meng-xor-kan isi akumulator dengan suatu nilai. Format : XRI byte Misal A = 0010 1100 Setelah instruksi XRI 0011 0010, maka A = 0001 1110 20. IN (Input) Instruksi ini memindahkan data dari register masukan ke akumulator. Format : IN byte Contoh : IN 1000 1101 Instruksi ini akan memasukkan data dari register masukan 1000 1101 ke dalam akumulator.
Instruksi-Instruksi SAP-2 (13) 21. RAL (Rotate the Accumulator Left) Instruksi ini berfungsi memutar nilai akumulator dari kiri satu bit. Bit yang paling kiri akan dialihkan ke bit yang paling kanan. Misal A = 1100 1000 Setelah instruksi RAL, maka A = 1001 0001 22. RAR (Rotate the Accumulator Right) Instruksi ini berfungsi memutar nilai akumulator dari kanan satu bit. Bit yang paling kanan akan dialihkan ke bit yang paling kiri. Misal A = 1100 1000 Setelah instruksi RAR, maka A = 0110 0100
Instruksi-Instruksi SAP-2 (14) 23. OUT (Output) Instruksi memindahkan data dari akumulator ke register keluaran. 24. HLT Instruksi ini tanda akhir dari program.
Instruksi-Instruksi SAP-2 (15) 25. NOP (No Operation) Selama eksekusi dari instruksi NOP tidak akan terjadi apapun pada semua keadaan T yang bersangkutan karena tidak ada register yang mengalami perubahan selama operasi NOP. Instruksi NOP dipakai untuk mendapatkan jeda untuk berbagai keperluan seperti sinkronisasi pada pipeline dan untuk mendapatkan delay pada sistem kontrol. NOP meperlukan empat keadaan (pulsa clock) T. Misalnya jika kita menempatkan sebuah instruksi NOP dalam suatu loop dan melaksanakan sebanyak 100 kali maka kita akan memperoleh delay time selama 400 kali keadaan T.
Latihan (1) Berikut adalah potongan sebuah program pada SAP-2. Tentukan nilai akhir pada register Akumulator! MVI A, 6A H MVI B, 2E H MVI C, 9 H SUB B ANA C RAL ORI 1001 1101 CMA
Latihan (2) Berikut adalah sebuah kutipan program dari komputer SAP-2. Tentukanlah nilai dari register Akumulator pada setiap tahapnya! MVI A, 2C H MVI B, 19 H MVI C, 12 H RAL ADD B RAR ORA C ANI 0011 0010 CMA