11-dig1b3-sap-3-rev.pdf

  • Uploaded by: Ria Murdani
  • 0
  • 0
  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View 11-dig1b3-sap-3-rev.pdf as PDF for free.

More details

  • Words: 2,899
  • Pages: 24
11/25/2015

Tahun Akademik 2015/2016 Semester I

DIG1B3 – Konfigurasi Perangkat Keras Komputer

SAP-3 Mohamad Dani (MHM) E-mail: [email protected]

Hanya dipergunakan untuk kepentingan pengajaran di lingkungan Telkom Applied Science School

Setelah mengikuti perkuliahan ini mahasiswa dapat: 

 

Menjelaskan instruksi-instruksi yang ada pada SAP-3. Membuat program sederhana untuk SAP-3 Dapat menggunakan Simulator 8085 untuk mensimulasikan program SAP-3 yang dibuat.

1

11/25/2015

Komputer SAP-3 (Simple As Possible Versi 3)    

Meski sederhana, SAP sudah mengandung banyak konsep yang lanjut. SAP-3 merupakan tahap pengembangan dari komputer SAP-1 dan 2. SAP-3 adalah sebuah mikro komputer 8 bit yang kompatibel dengan mikro prosesor 8085. Perangkat instruksi SAP-3 mencakup seluruh instruksi SAP-2 dari bahasan sebelumnya ditambah dengan instruksi-instruksi baru yang akan dibahas.

Model Pemrograman: Register-Register SAP-3 (1)  A

PC

SP

B

PC (Program Counter) 

Lebar 16-bit (0000H – FFFFH)



Nilai PC masuk ke MAR



Instruksi dilaksanakan secara berurutan dari alamat 0000 sampai ketemu instruksi HLT.



PC (Program Counter)

C

D

E

H

L

F





Stack Pointer (SP) 

Register 16 bit.



Register “baru” ini mengendalikan suatu bagian memori yang dikenal sebagai tumpukan (stack).

A (Accumulator) 

Register 8 bit.



Digunakan untuk operasi aritmatika dan logika.



Untuk menyimpan sementara hasil operasi ALU.



Jangkauan dari bilangan tak bertanda yang dapat ditangani adalah 0 sampai 255.



Jangkauan dari bilangan komplemen-2 bertanda adalah –128 sampai +127

yang

2

11/25/2015

Model Pemrograman: Register-Register SAP-3 (2)  A

PC

B

C

SP

D

E



Register 8 bit.



Digunakan untuk operasi aritmatika dan logika.



Jangkauan dari bilangan tak bertanda yang dapat ditangani adalah 0 sampai 255.



Jangkauan dari bilangan komplemen-2 bertanda adalah –128 sampai +127.

F

 H

B (Buffer)

L





yang

C (Counter) 

Register 8 bit.



Bisa digunakan untuk menyimpan data dan sebagai register counter.

D, E, H dan L 

Register 8 bit.



Untuk pemrosesan data yang lebih efisien.

F 

Register 8 bit.



Menyimpan bit-bit Flag S,Z dan lain-lain

Instruksi MOV dan MVI (1) 

Insruksi MOV dan MVI mempunyai prinsip kerja yang sama seperti didalam SAP-2. Perbedaannya hanya terletak pada jumlah register yang lebih besar untuk dilibatkan dalam pemindahan data.



Format instruksi : MOV reg1, reg2 

Dengan:



reg1 = A,B,C,D,E,H atau L

reg2 = A,B,C,D,E,H atau L

MVI reg, byte Dengan: reg = A,B,C,D,E,H atau L

3

11/25/2015

Instruksi-instruksi Aritmatika 

Karena lebar akumulator hanya 8 bit, maka isi yang terkandung didalamnya terbatas pada representasi bilangan tak Bertanda dari 0 sampai 255, atau representasi bilangan komplemen –2 bertanda dari –128 sampai +127.



Lepas dari jenis representasi bilangan yang dipakai, pemrogram perlu medeteksi adanya overflow (pelimpahan) yaitu hasil jumlahan atau pengurangan yang terletak diluar jangkauan normal dari akumulator. Untuk hal inilah Carry Flag diperkenalkan.

Instruksi-instruksi Aritmatika

Set Carry, CY=1, instruksi: STC Komplemen Carry, instruksi: CMC Reset Carry, CY=0 dengan instruksi: STC CMC



Apabila SUB=0, rangkaian menjumlahkan masukan-masukan A dan B. Jika operasi ini menghasilkan carry akhir, CARRY=1 dan CY=1. Jika tidak ada carry pada akhir operasi, CY=0.



Apabila SUB=1, rangkaian membentuk komplemen-2 dari masukan B, yang selanjutnya dijumlahkan dengan A. Dengan adanya gerbang XOR akhir, CARRY=1 yang keluar dari Full Adder terakhir menghasilkan CY=0. Jika tidak ada carry, CY=1.



CY = CARRY untuk instruksi ADD



CY = CARRY untuk instruksi SUB

4

11/25/2015

Instruksi Aritmatika Dikerjakan oleh ALU  Proses aritmatika adalah proses yang didasarkan pada peraturan aritmatika logika.  Contoh :  ADD (Add Accumulator)  ADC (Add Accumulator with Carry)  ADI (Add Immediate)  ACI (Add Immediate with Carry)  SUB (Sub Accumulator)  SBB (Sub Accumulator with Borrow)  SUI (Sub Immediate)  SBI (Sub Immediate with Borrow) 

Instruksi ADD Instruksi ini menjumlahkan isi dari register yang ditunjuk, dengan isi akumulator. Hasil penjumlahan disimpan dalam accumulator dan keadaan Carry Flag (set atau reset), bergantung pada ada atau tidaknya Carry yang dihasilkan pada akhir operasi. Format instruksi : ADD Reg Dengan: Reg = A,B,C,D,E,H atau L Misal : A=1111 0001 dan E = 0000 1000 

ADD E

Hasil Penjumlahan CY = 0

5

11/25/2015

Instruksi ADC 

Instruksi ini menjumlahkan isi dari register yang ditunjuk beserta isi Carry Flag dengan isi accumulator Hasil penjumlahan disimpan dalam accumulator dan keadaan Carry Flag (set atau reset), bergantung pada ada atau tidaknya Carry yang dihasilkan pada akhir operasi.



Karena operasi ini melibatkan bendera CY, instruksi ADC memungkinkan penjumlahan bilangan-bilangan diluar batas bilangan tak bertanda dari 0 sampai 255 atau batas bilangan bertanda –128 sampai +127.

Format instruksi : ADC Reg Dengan: Reg = A,B,C,D,E,H atau L Misal : A=1000 0011, E=0001 0010, CY=1 ADC E Hasil Penjumlahan CY = 0

Instruksi ADI Instruksi ini menjumlahkan data tertentu dengan isi akumulator. Hasil penjumlahan disimpan dalam accumulator dan keadaan Carry Flag (set atau reset), bergantung pada ada atau tidaknya Carry yang dihasilkan pada akhir operasi. Format instruksi : ADI byte Misal : A=1111 0001 dan byte = 0000 1000 

ADI 08H

Hasil Penjumlahan CY = 0

6

11/25/2015

Instruksi ACI 

Instruksi ini menjumlahkan data tertentu beserta isi Carry Flag dengan isi accumulator Hasil penjumlahan disimpan dalam accumulator dan keadaan Carry Flag (set atau reset), bergantung pada ada atau tidaknya Carry yang dihasilkan pada akhir operasi.



Karena operasi ini melibatkan bendera CY, instruksi ACI memungkinkan penjumlahan bilangan-bilangan diluar batas bilangan tak bertanda dari 0 sampai 255 atau batas bilangan bertanda –128 sampai +127.

Format instruksi : ACI Byte

Misal : A=1000 0011, byte=0001 0010, CY=1 ACI 12H

Hasil Penjumlahan CY = 0

Contoh 1: Dalam representasi bilangan biner tak bertanda, deretan biner 8-bit dapat mewakili bilangan desimal dari 0 sampai 255, sedangkan 16 bit dapat merepresentasikan angka dari 0 sampai 65.535. Tunjukkan suatu program SAP-3 yang menjumlahkan bilangan desimal 700 dan 900, dengan hasil penjumlahannya disimpan dalam register H dan register L. Solusi: 70010 = 02BCH = 0000 0010 1011 11002

90010 = 0384H = 0000 0011 1000 01002

700

0000 0010 1011 11002

900+

0000 0011 1000 01002+

1600

0000 0110 0100 00002 = 0640H

7

11/25/2015

Solusi Contoh 1: Program untuk Melaksanakan berikut : Label

penjumlahan kedua bilangan tersebut adalah sebagai

Mnemonik

Komentar

MVI A,00H

; kosongkan akumulator

MVI B,02H

; Simpan byte atas (UB) dari 700

MVI C,BCH

; Simpan byte bawah (LB) dari 700

MVI D,03H

; Simpan byte atas (UB) dari 900

MVI E,84H

; Simpan byte bawah (LB) dari 900

ADD C

; Jumlahkan LB dari 700

ADD E

; Jumlahkan LB dari 900

MOV L,A

; Simpan penjumlahan parsial (Low)

MVI A,00H

; kosongkan akumulator

ADC B

; Jumlahkan UB dari 700 dengan carry

ADD D

; Jumlahkan UB dari 900

MOV H,A

; Simpan penjumlahan parsial (High)

HLT

; Berhenti

Simulasi Contoh 1: Source Code contoh1.sap3

Bahasa Mesin contoh1.sap3

Hasil Simulasi contoh1.sap3

8

11/25/2015

Instruksi SUB 

Instruksi ini akan mengurangkan isi register yang ditunjuk dari isi akumulator. Jika terjadi pinjaman pada akhir oiperasi ini, bendera CY akan dipasang (diset). Jika tidak ada pinjaman, bendera CY akan direset.



Dengan kata lain, selama berlangsung operasi pengurangan, bendera CY berfungsi sebagai bendera pinjaman.

Format instruksi : SUB Reg Dengan: Reg = A,B,C,D,E,H atau L Misal : A=0000 1111, C=0000 0001 SUB C Di-NOT-kan CY = 0

Cara Manual

Hasilnya Positif Cara SAP-3

Instruksi SBB 

Instruksi ini akan mengurangkan isi register yang ditunjuk + carry dari isi akumulator. Jika terjadi pinjaman pada akhir oiperasi ini, bendera CY akan dipasang (diset). Jika tidak ada pinjaman, bendera CY akan direset.



Dengan kata lain, selama berlangsung operasi pengurangan, bendera CY berfungsi sebagai bendera pinjaman.

Format instruksi : SBB Reg Dengan: Reg = A,B,C,D,E,H atau L Misal : A=1111 1111, E=0000 0010, CY=1 SBB E 1111 1111 0000 0010 1+ 0000 0011

0000 00111111 1100

Hasilnya Positif

9

11/25/2015

Instruksi SUI Instruksi ini mengurangkan data tertentu dengan isi akumulator. Hasil pengurangan disimpan dalam accumulator dan keadaan Carry Flag (set atau reset), bergantung pada ada atau tidaknya Carry yang dihasilkan pada akhir operasi. Format instruksi : SUI byte Misal : A=1111 0001 dan byte = 0000 1000 

SUI 08H 1111 0001 0000 10001110 1001

Hasil Pengurangan CY = 0

Instruksi SBI 

Instruksi ini akan mengurangkan data tertentu + carry dari isi akumulator. Jika terjadi pinjaman pada akhir oiperasi ini, bendera CY akan dipasang (diset). Jika tidak ada pinjaman, bendera CY akan direset.



Dengan kata lain, selama berlangsung operasi pengurangan, bendera CY berfungsi sebagai bendera pinjaman.

Format instruksi : SBI Byte Misal : A=1111 1111, byte=0000 0010, CY=1 SBI 02H 1111 1111 0000 0010 1+

0000 00111111 1100

Hasilnya Positif, CY=0

0000 0011

10

11/25/2015

Contoh 2: Tunjukkan sebuah program 700 – 900 dan menyimpan jawabannya dalam register H dan L. Solusi: 70010 = 02BCH = 0000 0010 1011 11002 90010 = 0384H = 0000 0011 1000 01002

700

0000 0010 1011 1100

0000 0010 1011 1100

900-

0000 0011 1000 0100-

1111 1100 0111 1100+

- 200

1111 1111 0011 1000(FF38H)

Solusi Contoh 2: Program untuk Melaksanakan pengurangan kedua bilangan tersebut adalah sebagai berikut : Label

Mnemonik

Komentar

MVI A,BCH

; Simpan byte bawah (LB) dari 900

SUI 84H

; Kurangkan LB 700 dengan 900

MOV L,A

; Simpan pengurangan parsial (Low)

MVI A,02H

; Simpan byte atas (UB) dari 900

SBI 03H

; Kurangkan UB 700 dan 900 dengan borrow

MOV H,A

; Simpan pengurangan parsial (High)

HLT

; Berhenti

11

11/25/2015

Simulasi Contoh 2: Source Code contoh2.sap3

Bahasa Mesin contoh2.sap3

Hasil Simulasi contoh2.sap3

Instruksi Increment dan Decrement 

Instruksi increment dan decrement sama dengan instruksi yang telah dikenal dalam SAP-2.



Instruksi Increment (INR) dan Decrement (DCR) hanya mempengaruhi Sign dan Zero Flag.

Format instruksi :

INR Reg DCR Reg Dengan: Reg = A,B,C,D,E,H atau L Contoh: A = FFH = 1111 1111, B = 00H = 0000 0000 Mnemonic

Keterangan

INR A

A  A + 1; A = 00H = 0000 0000, S =0, Z=1, CY=0

DCR B

B  B – 1 ; B = FFH = 1111 1111, S =1, Z=0, CY=0

12

11/25/2015

Instruksi Rotate (1) 

RAL (Rotate All Left)  Memutar nilai akumulator ke kiri satu bit  LSB digeser 1 bit kekiri, CY masuk ke bit LSB yang telah digeser. MSB masuk ke CY  Misal A = 0111 0100, CY=1  Setelah instruksi RAL  CY=0, A=1110 1001



RAR (Rotate All Right)  Memutar nilai akumulator ke kanan satu bit  MSB digeser 1 bit kekanan, CY masuk ke bit MSB yang telah digeser. LSB masuk ke CY.  Misal A = 0111 0100, CY=1  Setelah instruksi RAR  CY=0, A=1011 1010

Instruksi Rotate (2) 



RLC (Rotate Left with Carry)  Memutar nilai akumulator ke kiri satu bit.  CY berisi MSB dari data yang diputar.  Dapat digunakan untuk operasi perkalian kelipatan 2.  Misal A = 0111 0100, CY=1  Setelah instruksi RLC CY=0, A=1110 1000 RRC (Rotate Right with Carry)  Memutar nilai akumulator ke kanan satu bit  CY bit LSB dari data yang diputar.  Dapat digunakan untuk operasi pembagian kelipatan 2.  Misal A = 0111 0100, CY=1  Setelah instruksi RAR  CY=0, A=0011 1010

13

11/25/2015

Instruksi Logika Dikerjakan oleh ALU  Proses logika adalah proses yang didasarkan pada peraturan aljabar logika  Contoh :  CMA (complement the accumulator)  ANA (and the accumulator)  ORA (or the accumulator)  XRA (xor the accumulator)  ANI (and Immediate)  ORI (or immediate)  XRI (xor immediate)  CMP (Compare the Accumulator)  CPI (Compare Immediate) 

Instruksi Logika: CMP (Compare the Accumulator) Instruksi ini berfungsi untuk membandingkan isi akumulator dengan isi register yang ditentukan.  Instruksi ini mempengaruhi Zero Flag.  Format instruksi : CMP Reg Dengan: Reg = A,B,C,D,E,H atau L  Contoh:  Misal nilai akumulator saat ini adalah A=F8H=1111 1000, D=F8H=1111 1000, Z=0 

Setelah instruksi CMP D A=F8H=1111 1000, D=F8H=1111 1000, Z=1

14

11/25/2015

Instruksi Logika: CPI (Compare Immediate) Instruksi ini berfungsi untuk membandingkan isi akumulator dengan data 8 bit.  Instruksi ini mempengaruhi Zero Flag.  Z =1 jika A = data dan Z=0 jika Z<>data  Format instruksi : CPI byte 



Contoh:  Misal nilai akumulator saat ini adalah A=F8H=1111 1000, byte=F8H=1111 1000, Z=0 Setelah instruksi CPI F8 A=F8H=1111 1000, Z=1

Instruksi Jump Berfungsi untuk memungkinkan prosesor mengeksekusi instruksi tidak secara berurutan.  Nilai PC dapat diubah sesuai dengan kondisi dan instruksi lompat atau pemanggilan.  Contoh : 



JMP (Jump)



JM (Jump if Minus)



JP (Jump if Positive)



JZ (Jump if Zero)



JNZ (Jump if Not Zero)



JC (Jump if Carry Set)



JNC (Jump if No Carry)



JPE (Jump if Parity Even)



JPO (Jump if Parity Odd)

15

11/25/2015

Instruksi Jump : JP (Jump if Positive)  Adalah

instruksi lompatan bersyarat. Prosesor akan memeriksa flag sign keluaran dari ALU. Jika Sign 0 (positif) maka lompatan dilakukan.



Format instruksi : JP Alamat

Instruksi Jump : JC (Jump if Carry)  Adalah

instruksi lompatan bersyarat. Prosesor akan memeriksa Carry Flag. Jika Carry Flag=1, maka lompatan dilakukan



Format instruksi : JC Alamat

16

11/25/2015

Instruksi Jump : JNC (Jump if No Carry)  Adalah

instruksi lompatan bersyarat. Prosesor akan memeriksa Carry flag. Jika Carry Flag=0 maka lompatan dilakukan.



Format instruksi : JNC Alamat

Instruksi Jump : JPE (Jump if Parity Even)  Adalah

instruksi lompatan bersyarat. Prosesor akan memeriksa P Flag. Jika P Flag=1, maka lompatan dilakukan



Format instruksi : JPE Alamat

17

11/25/2015

Instruksi Jump : JPO (Jump if Parity Odd)  Adalah

instruksi lompatan bersyarat. Prosesor akan memeriksa P Flag. Jika P Flag=0, maka lompatan dilakukan



Format instruksi : JPO Alamat

Instruksi Extended Register 

Beberapa instruksi SAP-3 menggunakan pasangan register CPU untuk memproses data 16-bit. Dengan kata lain, selama eksekusi instruksi-instruksi tertentu, register-register CPU disusun dalam kaskade (susunan berderet).



Pembentukan pasangan register selalu mengikuti ketentuan sebagai berikut: B berpasangan dengan C, D dengan E, dan H dengan L.



Semua instruksi tersebut mengandung huruf X di dalamnya, yang merupakan tanda bagi “extended register” (register yang diperluas) yaitu pasangan register.

18

11/25/2015

Instruksi Extended Register: LXI (Load extended immediate) Instruksi LXI dipakai untuk mengisi pasangan register tertentu dengan byte rangkap.  Format instruksi : LXI B, dble LXI D, dble LXI H, dble Dengan: B mewakili pasangan BC D mewakili pasangan DE H mewakili pasangan HL. Dble menyatakan byte rangkap (double byte). 

Instruksi Extended Register: DAD (Double Add ) Instruksi DAD menjumlahkan isi dari pasangan register tertentu dengan isi dari pasangan pasangan register HL. Hasil penjumlahannya disimpan dalam pasangan register HL  Format instruksi : DAD B DAD D DAD H Dengan: B mewakili pasangan BC D mewakili pasangan DE H mewakili pasangan HL. 

19

11/25/2015

Instruksi Extended Register: INX dan DCX INX berarti penambahan angka satu pada isi pasangan register (inclement the extended register). Dan DCX menyatakan penurunan angka satu dari isi pasangan register (descrement the extended register).  Instruksi INX dan DCX tidak mempengaruhi flag.  Format instruksi : INX B DCX B INX D DCX D INX H DCX H Dengan: B mewakili pasangan BC D mewakili pasangan DE H mewakili pasangan HL. 

Instruksi-instruksi Tak Langsung 

PC berfungsi sebagai penunjuk instruksi (Instruction Pointer)



Agar dapat menyimpan dan mengambil data di lokasi memori tertentu secara tidak langsung, digunakan register HL sebagai penunjuk data (data pointer).



Pengesetan alamat memori dilakukan secara tak langsung melalui register HL. Pengalamatan ini disebut pengalamatan tak langsung.

20

11/25/2015

Instruksi-instruksi Tak Langsung: Pembacaan Tak Langsung Instruksi ini mengisi register tertentu dengan data yang alamatnya ditunjukkan oleh HL. Setelah eksekusi instruksi tersebut , register itu akan berisi MHL.  Setelah eksekusi instruksi tersebut, register itu akan berisi MHL. 

 Format

instruksi : MOV reg, M Dengan reg = A,B,C,D,E,H atau L M = MHL

Instruksi-instruksi Tak Langsung: Penulisan Tak Langsung Instruksi ini akan mengisi lokasi memori yang alamatnya ditunjuk oleh HL dengan isi dari register tertentu.  Setelah eksekusi instruksi tersebut, kita akan mendapatkan MHL 

= reg

 Format

instruksi : MOV reg, M Dengan reg = A,B,C,D,E,H atau L M = MHL

21

11/25/2015

Instruksi-instruksi Tak Langsung: Instruksi Segera Tak Langsung 

Kadang-kadang kita ingin menuliskan data segera (immediate data) ke dalam lokasi memori yang dialamatkan oleh penunjuk HL.

 Format

instruksi : MVI M, byte Dengan M = MHL

Instruksi-instruksi Tak Langsung: Instruksi-instruksi penunjuk yang lain 

Kadang-kadang kita ingin menuliskan data segera (immediate data) ke dalam lokasi memori yang dialamatkan oleh penunjuk HL. ADD M ADC M SUB M SBB M INR M DCR M ANA M

ORA M XRA M CMP M

M = MHL

22

11/25/2015

Contoh 3: Misalkan ada 256 byte data yang tersimpan dalam memori pada alamat dari 2000H sampai 20FFH. Tunjukkan sebuah program yang akan menyalin 256 byte data ini untuk ditempatkan pada alamat 2100H sampai 21FFH!

Solusi Contoh 3: LXI H, 1FFFH ; Inisialisasi penunjuk

LOOP: INX H

; Naikkan isi penunjuk

MOV B,M ; Baca byte MOV A,H ; Isikan 20H ke dalam akumulator ADI 01H ; Tambahkan ofset 01H untuk mendapatkan 20H MOV H,A ; Pasang penunjuk H dengan ofset. MOV M,B ; Tuliskan byte dalam lokasi baru SUI 01H ; Kurangkan offset MOV H,A ; Mengembalikan H pada kedudukan semula MOV A,L ; Siapkan pembandingan CPI FFH ; Periksa apakah sama dengan 255 JNZ LOOP ; Jika belum, ambil byte berikutnya HLT

23

11/25/2015

Simulasi Contoh 3:

Bahasa Mesin contoh3.sap3

Hasil Simulasi contoh3.sap3

24

More Documents from "Ria Murdani"

Bab 3.docx
June 2020 9
Kelompok Ahli 1.docx
June 2020 7
Pengembnagna Kur.docx
June 2020 2
Vb.net.docx
June 2020 2