Simple As Possible (SAP) - 2

  Simple As Possible (SAP) - 2 Abdul Syukur abdulsyukur@eng.uir.ac.id http://skurlinux.blogspot.com

  085374051884

  Arsitektur Komputer SAP-2 Heksadesimal Keyboard 16 W

  8

   Persamaan dengan Masukan 1 Register 8 8 ALU Flag 8 2 8 Akumulator A SAP-1 : Masukan 2 Register 8 8

   Sama-sama komputer Program Counter 16 8 TEMP Serial In 8 bit. MAR 16 8 B

   Kesamaan ini dapat Memori RAM 16 8 C dilihat dari data yang 8 64 KB 8 8 Keluaran 3 Register diolah oleh ALU SAP-2 Memory Data Register 16 Peraga 8 yang masih 8 bit. Instruksi Register 8 8 Heksadesimal Register Pengendali- Pengurut

  8 Keluaran 4 Serial Out

  Perbedaan SAP-1 dengan SAP-2  Penambahan register-register baru.

   Penambahan lebar bus menjadi 16 bit (lebar data yang dioperasikan ALU tetap 8 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

  16

  mengalamati 2 alamat = 65.536 alamat, dari 0000 H sampai FFFF H  65.536 alamat dengan tiap alamat 8 bit maka :

  • – 65.536 * 8 bit = 524.288
  • – 524.288 : 8192 = 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.

   SAP-1 belum punya ALU tetapi hanya Penambah & Pengurang. SAP-2 sudah memiliki ALU.

  

Kemampuan Logika ALU & Flag

   Adanya Flag :

  • – Sign Flag untuk menandai nilai pada register A negatif (sign flag = 1) atau A positif (sign flag = 0).
  • – Zero Flag untuk menandai nilai pada register A nol (zero flag = 1) atau A bukan nol (zero flag = 0).

  Peningkatan Jumlah Instruksi

   Data yang masuk dari IR ke Pengendali & Pengurut sebanyak 8 bit.

   8 bit ini menjadi alamat bagi Pengendali & Pengurut.

  8

  = 256 alamat, dari 00 H  Kemampuan pengalamatannya 2 sd FF H.

   Tiap alamat berisi 1 signal CON.  Dari 256 signal CON didapat 43 instruksi.

  Perangkat Instruksi

   Instruksi terdiri dari 2 bagian, yaitu kode operasi (operation code, opcode) dan yang dioperasikan (operand).

  Kode operasi lebarnya 8 bit, menempati satu alamat di RAM.

   Contoh instruksi dengan operand yang berbeda-beda :

  Perangkat Instruksi (2)

  ADD B : Kode operasi 80 dan tidak membutuhkan memori untuk operand. MVI A, 18 H : Kode operasi 3E membutuhkan satu alamat RAM untuk operand.

  STA 4861 H : Kode operasi 32 membutuhkan 2 alamat RAM untuk operand.

   Misal ketiga instruksi tersebut disimpan pada RAM secara berurutan mulai alamat 1000 H, maka peta isi RAM sebagai berikut :

  RAM Alamat Isi (Biner) Isi (Hexa) Instruksi 1000 H 1000 0000

  80 ADD B 1001 H 0011 1110

  3E MVI A ,

  18 H 1002 H 0001 1000

  18 1003 H 0011 0010

  32 STA

  48

  61 H 1004 H 0110 0001

  61 1005 H 0100 1000

  48 1006 H ….. ….. …..

  Perangkat Instruksi SAP-2 No Mnemonik Opcode

  32

  47 No Mnemonik Opcode

  14 MOV B, C

  41

  15 MOV C, A

  4F

  16 MOV C, B

  48

  17 STA alamat

  18 SUB B

  79

  90

  19 SUB C

  91

  20 OUT D3

  21 MVI A, byte

  3E

  22 MVI B, byte

  06

  23 MVI C, byte

  13 MOV B, A

  12 MOV A, C

  1 ADD B

  6 HLT

  80

  2 ADD C

  81

  3 DCR A

  3D

  4 DCR B

  05

  5 DCR C

  0D

  76

  78

  7 INR A

  3C

  8 INR B

  04

  9 INR C

  0C

  10 LDA alamat

  3A

  11 MOV A, B

  0E

  Perangkat Instruksi SAP-2 No Mnemonik Opcode No Mnemonik Opcode

  37 RAR

  1F

  24 JMP alamat C3

  38 RET C9

  25 JM alamat FA

  39 XRA B A8

  26 JNZ alamat C2

  40 XRA C A9

  27 JZ alamat CA

  41 XRI byte EE

  28 ANA B A0

  42 IN byte DB

  29 ANA C A1

  43 NOP

  00

  30 ANI byte E6

  31 CALL alamat CD

  32 CMA

  2F

  33 ORA B B0

  34 ORA C B1

  35 ORI byte F6

  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 dengan nilai yg ada pada Akumulator)

  Instruksi-Instruksi SAP-2 (2)

  3. MVI (Move Immediate)

  Mengisi register aritmatika (A, B, C) dengan nilai tertentu.

  Format : MVI register, nilai Contoh : MVI B, C4H (isi register B dengan nilai C4H)

  4. MOV (Move)

  Menyalin data dari satu register aritmatika ke register aritmatika lain.

  Format : MOV register, register

Contoh : 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 & 8. 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 tidak bersyarat. Prosesor langsung mengalihkan eksekusi program sesuai dengan alamat tujuan lompatan.

  Format : JMP alamat Contoh : JMP 2500H

PC 2500H

  Instruksi ini memberitahu prosesor untuk menjalankan instruksi pada alamat 2500H.

  Proses ini mengubah nilai program counter dengan alamat 2500H.

  Instruksi-Instruksi SAP-2 (5)

10. JM (Jump if Minus)

  Instruksi lompatan bersyarat. Prosesor akan memeriksa flag (Sign) keluaran dari ALU pada operasi sebelumya.

  Jika sign flag bernilai 1, artinya hasilnya negatif, maka lompatan dilakukan.

  Jika sebaliknya maka lompatan tidak dilakukan.

  Format : JM alamat

  Instruksi-Instruksi SAP-2 (6)

   Contoh : Asumsi : Nilai reg A = 45H, B = 10H, dan C=60H SUB B : A = A - B = 45H - 10H A = 35H

  JM 1000H SUB C : A = A - C

  = 35H - 60H A = Hasilnya minus (kecil dari 0)

  JM 2600H

  Instruksi-Instruksi SAP-2 (7)  Setelah instruksi pertama dieksekusi nilai A positif.

  Pada instruksi berikutnya (JM 1000H) kondisi syarat untuk lompat tidak dipenuhi maka prosesor mengerjakan instruksi berikutnya (SUB C).  Setelah instruksi ketiga isi A bernilai negatif maka pada instruksi ke 4 (JM 2600H) prosesor akan lompat dan mengerjakan instruksi pada alamat 2600H.

  Instruksi-Instruksi SAP-2 (8)

11. JZ (Jump if Zero)

  Instruksi lompatan bersyarat. Prosesor akan memeriksa (flag) Zero keluaran dari ALU sebelumnya. Jika flag Zero bernilai 1, artinya hasilnya 0, maka lompatan akan dilakukan. Jika sebaliknya maka lompatan tidak dilakukan.

  Format : JZ alamat Contoh : JZ 2500H

  Instruksi ini memberitahu prosesor untuk menjalankan instruksi pada alamat 2500H jika zero flag bernilai 1.

  Instruksi-Instruksi SAP-2 (9)

12. JNZ (Jump if not Zero)

  Instruksi lompatan bersyarat. Prosesor akan memeriksa (flag) Zero keluaran dari ALU sebelumnya. Jika flag Zero bernilai 0, artinya hasilnya bukan 0, maka lompatan akan dilakukan. Jika sebaliknya maka lompatan tidak dilakukan.

  Format : JNZ alamat Contoh : JNZ 2500H

  Instruksi ini memberitahu prosesor untuk menjalankan instruksi pada alamat 2500H jika zero flag bernilai 0.

  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, 89 H SUB B DCR A ADD C OUT HLT

  Latihan (2)  Berikut adalah potongan sebuah program pada SAP-2.

  Tentukan nilai akhir pada register Akumulator ! MVI A, 2C H MVI B, 19 H MVI C, 2A H ADD B DCR C SUB C OUT HLT

  Latihan (3)  Berikut adalah potongan sebuah program pada SAP-2.

  Tentukan nilai akhir pada register Akumulator ! MVI A, 2C H MVI B, 19 H MVI C, 3E H ADD B

  INR A DCR C SUB C OUT HLT

  Latihan (4)  Berikut adalah potongan sebuah program pada SAP-2.

  Tentukan nilai akhir pada register C ! MVI A, 17 H MVI B, 2D H ADD B

  INR A MOV C, A HLT

  Latihan (5)  Berikut adalah potongan sebuah program pada SAP-2.

  Tentukan nilai akhir pada RAM di alamat 3AB8 H ! LDA 3AB7 H, 3A H MVI B, 1D H MVI C, 3C H ADD B SUB C ADD 42

10 STA 3AB8 H

  HLT