sap 2

11
Salam terhangat untuk para bloger tercinta, hehehe.... Pada postingan terdahulu kan kita udah tahu tu tentang yang namanya SAP-1, namun untuk yang masih belum tahu silahkan klik aja tilisan ini SAP-1. Nah untuk kali ini kita masih membahas tentang komputer sederhana atau simple as possible (SAP). Tapi kita tidak akan membahas SAP-1 melaikan kita akan membahas SAP-2. Maksudnya kita akan membahas lebih tinggilagi tentang yang namanya simple as possible, akan tetapi ini akan bersangkutan juga dengan SAP-1 kemaren karena SAP-2 merupakan kelanjutan dari SAP-1. Jadi bagi yang bleum tahu apa itu SAP-1 silahkan lihat postingan SAP-1 yang telah saya posting dulu. Atau klik disini. Arsitektur komputer SAP-2 A. Persamaan dengan SAP-1 : 1. Sama-sama komputer 8 bit. Kesamaan ini dapat dilihat dari data yang diolah oleh ALU SAP-2 yang masih 8 bit

Upload: islahudin-mly

Post on 20-Jun-2015

1.594 views

Category:

Education


3 download

TRANSCRIPT

Page 1: Sap 2

Salam terhangat untuk para bloger tercinta, hehehe....

Pada postingan terdahulu kan kita udah tahu tu tentang yang namanya SAP-1, namun untuk

yang masih belum tahu silahkan klik aja tilisan ini SAP-1. Nah untuk kali ini kita masih membahas

tentang komputer sederhana atau simple as possible (SAP). Tapi kita tidak akan membahas SAP-1

melaikan kita akan membahas SAP-2. Maksudnya kita akan membahas lebih tinggilagi tentang yang

namanya simple as possible, akan tetapi ini akan bersangkutan juga dengan SAP-1 kemaren karena

SAP-2 merupakan kelanjutan dari SAP-1. Jadi bagi yang bleum tahu apa itu SAP-1 silahkan lihat

postingan SAP-1 yang telah saya posting dulu. Atau klik disini.

Arsitektur komputer SAP-2 A. Persamaan dengan SAP-1 :

1. Sama-sama komputer 8 bit.

Kesamaan ini dapat dilihat dari data yang diolah oleh ALU SAP-2 yang masih 8 bit

Page 2: Sap 2

B. Perbedaan SAP-1 dengan SAP-2

1. Penambahan register-register baru.

a) 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)

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)

2. Penambahan lebar bus menjadi 16 bit (lebar data yang dioperasikan ALU tetap 8 bit).

a) Penambahan lebar bus menjadi 16 bit untuk mendukung lebar alamat memori yang

dikeluarkan oleh PC.

b) PC mengeluarkan 16 bit alamat berarti dapat mengalamati 216 alamat = 65.536 alamat,

•65.536 * 8 bit = 524.288

•524.288 : 8192 = 64 kByte

c) PC dapat menerima data masukan dari bus W yg bermanfaat untuk instruksi Jump dan

pemanggilan subroutine.

3. RAM yang tersedia 64 KB.

a) Kapasitas RAM 64 kB dari alamat 0000 H sampai FFFF H. b)

b) 2 kB pertama (0000 H sd 07FF H) untuk program monitor : serangkaian program untuk

menampilkan isi input register dan output register ke monitor.

c) 62 kB berikutnya untuk instruksi dan data.

4. Penambahan kemampuan logika pada ALU.

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

ALU.

b) Adanya Flag :

•Sign Flag untuk menandai nilai pada register A negatif (sign flag = 1) atau positif (sign

flag = 0).

Page 3: Sap 2

•Zero Flag untuk menandai nilai pada register A nol (zero flag = 1) atau bukan nol (zero

flag = 0).

5. Adanya flag (bendera).

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

b) 8 bit ini menjadi alamat bagi Pengendali & Pengurut.

c) Kemampuan pengalamatannya 28 = 256 alamat, dari 00 H sd FF H.

d) Tiap alamat berisi 1 signal CON.

e) Dari 256 signal CON didapat 43 instruksi.

6. Peningkatan jumlah instruksi dari 5 ke 43 instruksi (42 instruksi + 1 instruksi No operation).

a) 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.

b) Contoh instruksi dengan operand yang berbeda- beda :

ADD B : Kode operasi 80 dan tidak membutuhkan memori untuk operand.

MVI A, 18H : Kode operasi 3E membutuhkan satu alamat RAM untuk operand.

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

Misal ketiga instruksi tersebut disimpan pada RAM secara berurutan mulai alamat

1000H, maka peta isi RAM sebagai berikut :

Page 4: Sap 2

Perangkat-perangkat intruksi SAP-2

NNoo Mnemonik opcode

11 ADD B 80

22 ADD C 81

33 DCR A 3D

44 DCR B 05

55 DCR C 0D

66 HLT 76

77 INT A 3C

88 INT B 04

99 INT C 0C

1100 LDA alamat 3A

1111 MOV A, B 78

1122 MOV A, C 79

1133 MOV B, A 47

1144 MOV B, C 41

1155 MOV C, A 4F

1166 MOV C, B 48

1177 STA alamat 32

1188 SUB B 90

1199 SUB C 91

2200 OUT D3

2211 MVI A, byte 3E

2222 MVI B, byte 06

2233 MVI C, byte 0E

2244 JM alamat C3

Page 5: Sap 2

Instruksi-intruksi 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 dengannilai yg ada pada Akumulator)

2255 JNZ alamat C2

2266 JZ alamat CA

2277 ANA B A0

2288 ANA C A1

2299 ANI byte E6

3300 CALL alamat CD

3311 CMA 2F

3322 ORA B B0

3333 ORA C B1

3344 ORI byte F6

3355 RAL 17

3366 RAR 1F

3377 RET C9

3388 XRA B A8

3399 XRA C A9

4400 XRI byte EE

Page 6: Sap 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).

5. 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)

6. 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)

7. 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.

8. JM (Jump if Minus)

Page 7: Sap 2

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

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

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.

9. 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.

10. 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.

Page 8: Sap 2

Format : JNZ alamat

Contoh : JNZ 2500H

Instruksi ini memberitahu prosesor untuk menjalankan instruksi pada alamat 2500H jika zero

flag bernilai 1.

11. CALL

Instruksi call the subroutine (panggil subrutin). Subrutin (subroutine) adalah suatu program

yang disimpan dalam memori untuk digunakan dalam program yang lain seperti perhitungan

sinus, cosinus, tangen, logaritma, akar-kuadrat, dsb.

Format : CALL alamat

Contoh : CALL 6000H

Misalnya, jika sebuah subrutin logaritma berawal pada alamat 6000H maka eksekusi dari

instruksi CALL 6000H menghasilkan suatu lompatan ke subrutin logaritma.

12. RET

Instruksi return (kembali) atau mengakhiri sebuah subrutin dan kembali ke program utama,

ditulis di akhir setiap subrutin.

Format : RET (tanpa operand)

Ketika instruksi CALL dilaksnakan dalam komputer SAP-2, isi pencacah program secara

otomatis tersimpan pada lokasi memori FFFEH dan FFFFH (dua lokasi memori terakhir).

Alamat CALL kemudian diisikan kedalam PC, sehingga eksekusi memulai dengan instruksi

pertama dalam subrutin.

13. CMA (Complement the Accumulator)

Eksekusi ini akan membalikkan setiap bit dalam akumulator dan menghasilkan komplement

–1 dari bilangan yang bersangkutan.

Format : CMA

Contoh : Nilai awal akumulator A = 1001101

Setelah instruksi CMA A = 0110010 16.

14. ANA (AND the Accumulator)

AND-kan isi akumulator dengan isi register tertentu, hasilnya disimpan dalam akumulator.

Format : ANA register Contoh : ANA B Misal A = 01100011 dan B = 10100110

Setelah ANA B, A = 00100010

15. ORA (OR the Accumulator)

Page 9: Sap 2

16. XRA (XOR the Accumulator)

17. ANI (AND Immediate the Accumulator)

Meng-AND-kan isi Akumulator dengan suatu nilai.

Format : ANI byte

Contoh : ANI 01001100

Misal : A = 01101010

Setelah instruksi ANI, A = 01001000

18. ORI (OR Immediate the Accumulator)

19. XRI (XOR Immediate the Accumulator)

20. IN (Input)

Memindahkan data dari Register masukan ke Akumulator.

21. OUT (Output)

Memindahkan data dari Akumulator ke Register keluaran.

22. HLT

Tanda akhir dari program

LATAIHAN

Soal:

1. Berikut adalah potongaan sebuah program pada SAP-2, tentukan nilai akhir pada register akumulator! Sertakan dengan gambar!... MVI A, A9H MVI B, B8H MVI C, C7H RAL ANA B ORA C ANI 0011 1011 ORI 1100 1100 RAR CMA OUT HLT

Jawaban:

Page 10: Sap 2

RAM

Alamat Biner Hexa MnemoniK

0800H 0011 1110 3E MVI A, A9H

0801H 1010 1001 A9

0802H 0000 0110 6 MVI B, B8H

0803H 1011 1000 B8

0804H 0000 1110 0E MVI C, C7H

0805H 1100 0111 C7

0806H 0001 0111 17 RAL

0807H 1010 0000 A0 ANA B

0808H 1011 0001 B1 OR C

0809H 1110 0110 E6 ANI 0011 1011

080AH 0011 1011

080BH 1111 0110 F6 ORI 1100 1100

080CH 1100 1100

080DH 0001 1111 1F RAR

080EH 0010 1111 2F CMA

080FH 1101 0011 D3 OUT

08F0H 0111 0110 76 HLT

08F1H

08F2H

:

:

FFFFH

A= 1010 1001 B= 1011 1000 C= 1100 0111 RAL A=1010 1001 A=0101 0011 ANA B (AND the Accumulator) A=0101 0011 B=1011 1000 A=0001 0000 ORA C (OR the Accumulator) A=0001 0000 C=1100 0111 A=1101 0111

Page 11: Sap 2

ANI (AND Immediate the Accumulator) A=1101 0111

0011 1011 A=0001 0011 ORI (OR Immediate the Accumulator) A=0001 0011

1100 1100 A=1101 1111 RAR A=1101 1111 A=1110 1111 CMA (Complement the Accumulator) A=1110 1111 A=0001 0000 (16) Jadi hasil akhirnya A=0001 0000 (16)