Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

SAP-3.

Presentasi serupa


Presentasi berjudul: "SAP-3."— Transcript presentasi:

1 SAP-3

2 Pengantar SAP-3: sebuah mikrokomputer 8-bit yang kompatibel ke atas dengan mikroprosesor 8085 Perangkat instruksi: sama dengan SAP-2, ditambah dengan instruksi-instruksi baru

3 Model Pemrograman Register pada SAP-3

4 Model Pemrograman PC berupa register 16-bit yang melakukan pencacahan dari 0000H - FFFFH PC mengirimkan alamat instruksi berikutnya yang akan dilaksanakan  dan kemudian ditahan dalam MAR Register CPU: Register A, B, C, D, E, H, L, masing-masing register berukuran 8-bit yang digunakan dalam operasi aritmetika dan logika

5 Model Pemrograman Register F (Flag) digunakan untuk menyimpan bit-bit bendera S, Z, CY, dan P Register SP (Stack Pointer): register SP berupa register 16-bit, yang digunakan untuk menunjukkan suatu bagian dari memori yang disebut stack

6 Instruksi Perpindahan Data

7 MOV dan MVI Instruksi MOV: digunakan untuk perpindahan data antar register Format: MOV reg1, reg2 dengan reg1 = reg A, B, C, D, E, H atau L reg2 = reg A, B, C , D, E, H atau L Secara mikrooperasi: reg1  reg2 Contoh: MOV L, A MOV E, H

8 MOV dan MVI Instruksi MVI: berupa instruksi perpindahan data segera (immediate) Format: MVI reg, byte dengan reg = register A, B, C, D, E, H atau L Contoh: MVI D,0EH MVI L, FFH Keuntungan CPU yang mempunyai jumlah register lebih banyak: MOV dan MVI memerlukan keadaan T lebih sedikit dibandingkan dengan instruksi MRI. Semakin banyak register  semakin banyak MOV dan MVI yang dapat dipakai

9 Instruksi-instruksi Aritmetika

10 Bendera Carry Gambar di atas adalah rangkaian logika yang digunakan sebagai penjumlah-pengurang pada SAP-3. Jika SUB=0, rangkaian melakukan penjumlahan Jika SUB=1, rangkaian melakukan pengurangan

11 Bendera Carry Selama operasi penjumlahan, CY disebut carry. Pada operasi pengurangan, CY disebut borrow Hasil operasi penjumlahan disimpan dalam akumulator, dan carry/borrow yang terjadi disimpan pada bendera CY

12 Instruksi Bendera Pindahan (Carry/Borrow)
STC (Set Carry) Membuat bit CY bernilai ‘1’ (set) CMC (Complement the Carry) Mengkomplemenkan nilai carry Jika sebelum eksekusi CY=0, setelah instruksi CMC dilaksanakan maka CY=1 Jika sebelum eksekusi CY=1, setelah instruksi CMC dilaksanakan maka CY=0 Bagaimana untuk mereset Carry?

13 Instruksi ADD Format instruksi: ADD reg
dengan reg = register A, B, C, D, E, H dan L Instruksi ADD: menjumlahkan isi register yang ditunjuk dengan isi akumulator, hasil penjumlahan disimpan dalam akumulator. Contoh:

14 Instruksi ADD Sehingga pada akhir siklus instruksi dihasilkan:
CY=0 dan A =

15 Instruksi ADC Instruksi ADC (Add With Carry): jumlahkan dengan carry
Format: ADC reg dengan reg = register A, B, C, D, E, H dan L

16 Instruksi ADC Contoh:

17 Instruksi SUB Format: SUB reg
Instruksi ini akan mengurangkan isi register yang ditunjuk dari isi akumulator Jika terjadi borrow, CY akan diset ‘1’ Jika tidak terjadi borrow, CY akan direset

18 Instruksi SUB Contoh: A=0000 1111 dan C=0000 0001
Maka eksekusi instruksi SUB C menghasilkan: Tidak terjadi borrow, sehingga CY=0 dan A=

19 Instruksi SBB Instruksi SBB (Substract with Borrow) digunakan untuk mengurangkan isi register yang ditunjuk beserta isi bendera CY, dari isi yang terdapat dalam register akumulator Contoh: Jika A = E = dan CY =1, maka instruksi SBB E akan menghasilkan:

20 Instruksi SBB Hasil akhir dari operasi ini adalah:
CY=0 dan A=

21 Penambahan (Increment)
Format instruksi: INR reg Contoh: Jika diberikan L= eksekusi dari INR L akan menghasilkan L = Instruksi INR tidak berpengaruh pada bendera carry, tetapi instruksi ini mempengaruhi bendera tanda dan bendera nol

22 Penambahan (Increment)
Contoh: Jika B = dari keadaan semula bendera-bendera adalah S=1, Z=0, CY = 0 Maka setelah eksekusi INR B akan dihasilkan: B = dengan S=0, Z=1, CY=0 Terlihat bahwa bendera carry tidak berubah walaupun terjadi carry

23 Pengurangan (Decrement)
Format Instruksi: DCR reg Contoh: Jika E = Eksekusi DCR E akan menghasilkan E = Instruksi DCR mempengaruhi bendera tanda (Sign) dan bendera nol (Zero), tetapi tidak mempengaruhi bendera CY

24 Pengurangan (Decrement)
Contoh: Kondisi awal: E = S = 0, Z = 1, CY = 0 Setelah eksekusi DCR E akan diperoleh kondisi baru: E = S = 1, Z = 0, CY = 0

25 Putar semua ke kiri Format: RAL reg
Instruksi RAL: memutar semua bit termasuk bendera CY ke kiri

26 Putar semua ke kanan Format: RAR reg
Instruksi RAR: memutar semua bit termasuk bendera CY ke kanan

27 RLC dan RRC Format: RLC reg Format: RRC reg

28 Instruksi Logika Instruksi yang ada: ANA reg ORA reg XRA reg
Instruksi-instruksi ini menyebabkan terjadinya operasi-operasi AND, OR dan XOR antara register yang ditunjuk dengan akumulator

29 Instruksi Logika Instruksi yang lain CMP reg
Instruksi ini membandingkan isi register yang ditunjuk dengan isi akumulator Bendera nol (Zero) menunjukkan hasil pembandingan:

30 Instruksi Logika Instruksi CMP tidak mempengaruhi isi akumulator, tetapi hanya mempengaruhi isi bendera Z Contoh: Jika: A=F8H D=F8H Z=0 setelah operasi CMP D akan menghasilkan A=F8H Z=1

31 Instruksi Aritmetika dan Logika Segera (Immediate)
Format instruksi: ANI byte ORI byte XRI byte Byte data akan disegera di-’AND, OR atau XOR’-kan dengan isi akumulator

32 Instruksi Aritmetika dan Logika Segera (Immediate)
Format instruksi ADI byte  ADD immediate ACI byte  ADC immediate SUI byte  SUB immediate SBI byte  SBB immediate CPI byte  CMP immediate

33 Instruksi Lompatan Instruksi-instruksi SAP-2 yang digunakan pada SAP-3 adalah: JMP alamat JM alamat JZ alamat JNZ alamat

34 Instruksi Lompatan - JP
JP = Jump if Positive Format instruksi: JP alamat menghasilkan suatu lompatan ke alamat yang ditentukan jika bendera tanda dalam keadaan reset

35 Instruksi Lompatan - JC
JC = Jump if Carry Format instruksi: JC alamat menghasilkan suatu lompatan ke alamat yang ditentukan jika bendera carry dalam keadaan set

36 Instruksi Lompatan - JNC
JNC = Jump if NoCarry Format instruksi: JNC alamat menghasilkan suatu lompatan ke alamat yang ditentukan jika bendera carry tidak dalam keadaan set

37 Instruksi Lompatan - Bendera Paritas
Register F yang menyimpan bendera-bendera Untuk bit paritas: Jika angka 1 berjumlah genap maka bendera paritas diset Jika angka 1 berjumlah ganjil maka bendera paritas direset

38 Instruksi Lompatan - JPE
JPE = Jump if Parity Even Format instruksi: JPE alamat menghasilkan suatu lompatan ke alamat yang ditentukan jika bendera paritas dalam keadaan set (paritas genap)

39 Instruksi Lompatan - JPO
JPO = Jump if Parity Odd Format instruksi: JPO alamat menghasilkan suatu lompatan ke alamat yang ditentukan jika bendera paritas dalam keadaan reset (paritas ganjil)

40 Instruksi Lompatan - Contoh
Misalkan keadaan bendera-bendera adalah S=1, Z=0, CY=0 dan P=1 maka program akan melompat jika menjumpai instruksi JPE

41 Instruksi Register Berpasangan

42 Pasangan Register Pasangan register

43 Instruksi LXI Format instruksi: dengan B mewakili pasangan BC
LXI B, dble LXI D, dble LXI H, dble dengan B mewakili pasangan BC D mewakili pasangan DE H mewakili pasangan HL Contoh: LXI B, 90FFH

44 Instruksi DAD (Double ADD)
Format instruksi: DAD B DAD D DAD H Instruksi DAD menjumlahkan isi dari pasangan register tertemtu dengan pasangan register HL. Hasil penjumlahan disimpan dalam pasangan register HL

45 Instruksi DAD (Double ADD)
Contoh: BC = F521H HL = 0003H maka eksekusi DAD B menghasilkan HL = F524H Instruksi DAD mempengaruhi bendera CY

46 Instruksi INX (Increment the Extended Register)
Format instruksi: INX B INX D INX H

47 Instruksi DCX (Decrement the Extended Register)
Format instruksi: DCX B DCX D DCX H Instruksi INX dan DCX tidak mempengaruhi bendera

48 Instruksi-instruksi Taklangsung

49 Visualisasi Penunjuk HL
SAP-3 memiliki instruksi yang menggunakan register HL sebagai penunjuk alamat data (data pointer)

50 Pengalamatan Taklangsung
Pengalamatan langsung: LDA 5000H STA 6000H Pengalamatan taklangsung: digunakan penunjuk HL sebagai penunjuk alamat

51 Pembacaan Taklangsung
Salah satu bentuk: MOV reg, M dengan reg = A, B, C, D, E, H, atau L M = MHL Instruksi ini mengisi register tertentu dengan data yang alamatnya ditunjukkan oleh isi register HL. Setelah eksekusi, register tersebut berisi MHL

52 Pembacaan Taklangsung
Contoh: HL = 3000H dan M3000H = 87H maka eksekusi MOV C, M menghasilkan C = 87H

53 Penulisan Taklangsung
Salah satu bentuk: MOV M, reg dengan reg = A, B, C, D, E, H, atau L M = MHL Instruksi ini mengisi lokasi memori tertentu yang alamatnya ditunjukkan oleh isi register HL. Setelah eksekusi, akan diperoleh MHL = reg

54 Penulisan Taklangsung
Contoh: HL = E300H B = F2H eksekusi dari MOV M,B menghasilkan ME300H = F2H

55 Instruksi Segera Taklangsung
Misal: MVI M,byte Jika dimisalkan HL = 3000H, maka eksekusi dari MVI M, 87H akan menghasilkan M3000H = 87H

56 Instruksi-instruksi Penunjuk yang lain
ADD M ADC M SUB M SBB M INR M DCR M ANA M ORA M XRA M CMP M

57 Instruksi Penumpukan

58 SAP-2 mempunyai instruksi CALL yang dapat mengarahkan program kepada suatu subrutin
Sebelum terjadi lompatan  isi PC ditambah satu dan disimpan pada alamat FFFEH dan FFFFH Pada saat berakhirnya subrutin, instruksi RET mengisi PC dengan alamat kembali, yang mengakibatkan komputer kembali ke program utama

59 Tumpukan Merupakan bagian dari memori yang disediakan terutama bagi penyimpanan alamat kembali (return address) SAP-2: tumpukan pada alamat FFFEH dan FFFFH

60 Tumpukan SAP-3: struktur tumpukan berbeda  pemrogram dapat memutuskan di mana lokasi tumpukan dan berapa besar tumpukan yang dipakai tumpukan Bagian memori yang telah digunakan sebagai tumpukan tidak dapat digunakan untuk menyimpan program/data

61 Penunjuk Tumpukan Instruksi yang digunakan: PUSH, POP, dan CALL
Instruksi tumpukan menggunakan pengalamatan taklangsung, register SP digunakan sebagai penunjuk alamat

62 Penunjuk Tumpukan Misalkan SP = 20FFH, penunjuk tumpukan akan menunjuk ke M20FFH Inisialisasi penunjuk tumpukan: LXI SP, dble Contoh: LXI SP, 20FFH berarti penunjuk alamat tumpukan akan diinisialisasi ke alamat 20FFH

63 Instruksi PUSH Instruksi PUSH digunakan untuk menyimpan data dalam suatu tumpukan (stack) Instruksi yang ada: PUSH B PUSH D PUSH H PUSH PSW PSW (Program Status Word) merupakan rangkuman dari isi register Akumulator dan register bendera, jadi PSW=AF

64 Instruksi PUSH Pelaksanaan instruksi PUSH
Penunjuk tumpukan dikurangi satu, sehingga diperoleh SP-1 Byte tinggi dalam pasangan register disimpan dalam MSP-1 Penunjuk tumpukan dikurangi lagi menjadi SP-2 Byte rendah dalam pasangan register disimpan dalam MSP-2

65 Instruksi PUSH Contoh: BC = 5612H SP = 2100H
Bila PUSH B dieksekusi, maka Penunjuk tumpukan diturunkan menjadi 20FFH Byte tinggi pada pasangan register BC, yaitu 56H disimpan pada lokasi 20FFH

66 Instruksi PUSH Penunjuk tumpukan diturunkan lagi menjadi 20FEH
byte rendah dari pasangan register BC, yaitu 12H disimpan pada lokasi 20FEH

67 Instruksi PUSH Contoh lain: Misal SP = 2100H AF = 1234H DE = 5678H
HL = 9A25H Maka eksekusi dari PUSH PSW PUSH D PUSH HL

68 Instruksi POP Instruksi yang ada: Pelaksanaan instruksi POP
POP B POP D POP H POP PSW Pelaksanaan instruksi POP Byte dibaca dari lokasi memori yang dialamati oleh penunjuk tumpukan. Byte ini kemudian ditempatkan ke byte rendah dari pasangan register yang ditentukan Penunjuk tumpukan di-increment Byte dibaca dari lokasi memori dan disimpan pada byte tinggi dari pasangan register yang ditentukan

69 Instruksi POP Misalkan dalam tumpukan sudah terdapat data:
maka penunjuk tumpukan berada pada alamat 20FAH Maka Eksekusi POP B: Byte 25 H dibaca dari lokasi 20FAH dan disimpan pada register C

70 Instruksi POP Penunjuk tumpukan diincrement menjadi 20FCH
Penunjuk tumpukan diincrement menjadi 20FB. Byte 9AH dibaca dari lokasi 20FB dan disimpan pada register B. Pasangan regsiter BC sekarang berisi BC = 9A25H Penunjuk tumpukan diincrement menjadi 20FCH

71 Instruksi POP Setiap kali melaksanakan instruksi POP, 2 byte data akan keluar dari tumpukan. Jika instruksi POP PSW dan POP H dilaksanakan, maka isi register menjadi: AF = 5678 HL = 1234H dan SP = 2100H

72 Instruksi CALL dan RET Digunakan untuk pemanggilan subrutin
Format instruksi CALL alamat Urutan pelaksanaan Pada saat dilaksanakan, isi PC di-PUSH ke tumpukan Kemudian alamat awal subrutin dimuat ke PC Setelah subrutin selesai dilaksanakan, instruksi RET akan mem-POP isi PC yang disimpan dalam tumpukan  eksekusi program utama lagi

73 Instruksi CALL dan RET Contoh penggunaan:

74 Instruksi CALL dan RET Pada saat eksekusi CALL 8050H, alamat instruksi berikutnya (2006H) di-PUSH ke tumpukan. Pada saat eksekusi RET, alamat instruksi berikutnya akan di-POP ke PC

75 Pemanggilan dan Pengembalian Bersyarat
Instruksi Pemanggilan yang ada CNZ alamat CZ alamat CNC alamat CC alamat CPO alamat CPE alamat CP alamat CM alamat Instruksi Pengembalian yang ada RNZ alamat RZ alamat RNC alamat RC alamat RPO alamat RPE alamat RP alamat RM alamat


Download ppt "SAP-3."

Presentasi serupa


Iklan oleh Google