4. Aritmatika Edit

April 10, 2019 | Author: Muhammad Saidi | Category: N/A
Share Embed Donate


Short Description

LAPORAN...

Description

INSTRUKSI ARITMATIKA

LAPORAN PRAKTIKUM SISTEM MIROPROSESSOR

Disusun oleh :

NAMA NIM

: Muhammad Hibban Jumara : 1520401019

PROGRAM STUDI TEKNIK ELEKTRONIKA

JURUSAN TEKNIK ELEKTRO POLITEKNIK NEGERI LHOKSEUMAWE 2017

HALAMAN PENGESAHAN

INSTRUKSI ARITMATIKA

Praktikum ini sudah selesai dilaksanakan dilaksanakan dan telah memperoleh data-data yang diperlukan untuk memahami pokok bahasan yang dipelajari

Menyetujui, Dosen Pengasuh

Penyusun,

Salahuddin, Salahuddi n, SST, MT  Nip. 197410052000121001 197410052000121001

Muhammad Hibban 1520401019

Setelah laporan ini diperiksa, Praktikan mendapat mendapat nilai:

4. INSTRUKSI ARITMATIKA Salah satu kelompok instruksi terpenting dalam set instruksi suatu mikroprosesor adalah kelompok instruksi ini beguna untuk melakukan operasi-operasi aritmatika,seperti  penjumlahan,pengurangan,perkalian  penjumlahan,pengurangan,perka lian atau pembagian seperti halnya kelompok instruksintransfer data.kelompok instruksi aritmatika dapat dilakasanakan dengan menggunakan bermacam-macam modus pengalamatan. Dalam mikroprosesor 8085 instruksi aritmatika yang disediakan jumlahnya terbatas kepada instruksi penjumlahan dan pengurangan saja untuk menyelesaikan persoalan aritmatka lainnya seperti perkalian,pembagian,mencari nilai kuadrat suatu bilangan,dan lain-lain dapat dilakukan dengan menggabungkan berbagai instruksi yang tersedia. Perlu diperhatikan bahwa mikroprosesor melakukan operasi penjumlahan dan  pengurangan dalam system komplemen dua,sedangkan kita terbiasa t erbiasa menggunakan system  bilangan decimal dalam kehidupan sehari-hari.untuk mengatasi ini,mikroprosesor 8085 menyediakan instruksi DAA yang memberikan factor koreksi pada saat kita bekerja dengan bilangan decimal(menggunakan kode BCD). Sasaran Belajar

Setelah melakukan percobaan-percobaan pada bab ini,diharapkan saudara mampu.  Membuat program untuk menjumlahkan data heksadesimal yang terdapat pada register.  Membuat program pengurangan bilangan dalam system komplemen dua.  Membuat program penjumlahan data yang terdapat pada lokasi memori tertentu.  Membuat program penjumlahan dan pengurangan bilangan dalam system BCD (decimal).  Menjelaskan fungsi instruksi DAA (decimal adjust accumulator).

Peralatan yang digunakan  Unit komputer (PC)  Simulator 8085 Teori Penunjang

Pada percobaan ini kita akan berlatih menggunakan berbagai instruksi aritmatika. Instruksi-instruksi yang termasuk kedalam kelompok instruksi aritmatika diantaranya adalah ADD,ADI,ADC,ACI,SUB,SUI,SBB,SBI,INR,DCR,INXDCX,DAD, dan DAA. Disamping instruksi –   – instruksi instruksi diatas operasi aritmatika lainnya yang yang sering digunkan untuk memperbandingkan nilai bilangan adalah instruksi CMP dan CPI. a. Instruksi ADD dan SUB Instruksi ADD digunakan untuk melakukan operasi penjumlahan 8 bit. Pada operasi tersebut,isi register A (akumulator) akan ditambah dengan isi register 8 bit atau isi lokasi memori yang alamatnya ditunjukkan oleh pasangan register HL.

Table 4.1 Mnemonik ADD A ADD B ADD C ADD D ADD E ADD H ADD L ADD M

Symbol operasi A ~ A+A A ~ A+B A ~ A+C A ~ A+D A ~ A+E A ~ A+H A ~ A+L A ~ A+[(H)(L)]

Instruksi SUB dipergunakan untuk melakukan operasi pengurangan 8 bit. Pada operasi tersebut,isi register A(akumulator) akan dikurangi dengan isi register 8 bit atau isi lokasi memori yang alamatnya ditunjukan oleh pasangan register HL ,perhatikan pada table 4.2. Table 4.2. Mnemonik Sub A Sub B Sub C Sub D Sub E Sub H Sub L Sub M

Symbol operasi A~ A+A A~ A+ B A~ A+C A~ A+D A~ A+E A~ A+H A~ A+L A~ A+[(H)(L)]

b. Instruksi ADI dan SUI Instruksi ADI dipergunakan untuk mengubah isi register A(akumulator) dengan data 8 bit (immediate data).

Contoh 4.1 Pada instruksi ADI 2Ch, isi register A akan ditambah dengan data 2Ch dan hasilnya disimpan pada register A. A



A + 2CH

Instruksi SUI dipergunakan untuk mengurangi isi register A (akumulator) dengan data 8 bit (immediate data ) Contoh 4.2 Pada instruksi SUI 5Ah,isi register A akan dikurangi dengan data 5Ah dan hasilnya disimpan pada register A. A



A - 5Ah

Jika hasil penjumlahan atau hasil pengurangan lebih besar dari 7Fh(+ 127 desimal) atau lebih kecil dari 80h (-128 desimal ), maka carryBorrow bit pada register bendera akan set (CY = 1). c. Instruksi ADC dan SBB Instruksi ADC dipergunakan untuk menambah isi register A dengan data 8 bit dan mengikitsertakan carry bit (CY)dari operasi sebelumnya data 8 bit tersebut dapat diambil dari suatu register atau suatu lokasi memori yang alamatnya ditunjukkan oleh register HL. Mnemonic dan symbol operasi operasi untuk instruksi ADC ditunjukan pada table 4.3. Instruksi SBB berfungsi untuk mengurangi isi register A dengan data 8 bit dan mengikutsertakan  Borrow  bit (CY)dari operasi sebelumnya .data 8 bit tersebut dapat diambil dari suatu register atau suatu lokasi memori yang alamatnya ditunjukkan oleh register HL .

Table 4.3 Mnemonic ADC A ADC B ADC C ADC D ADC E ADC H ADC L ADC M

Symbol operasi A A + A + CY A  A+ B + CY A  A+ C + CY A  A+ D + CY A A+ E + CY A A+ H+ CY A A+ L + CY A A+[(H)(L)+CY

Tabel 4.4 memperlihatkan mnemonic dan symbol operasi untuk instruksi  –  instruksi SBB

Mnemonic SBB A SBB B SBB C SBB D SBB E SBB H SBB L SBB M

Tabel 4.4 Symbol operasi A   A-A-CY A   A-B-CY A   A-C-CY A   A-D-CY A A-E-CY A   A-H-CY A   A-L-CY A   A-[(H)(L)]-CY

d. Instruksi ACI dan SBI Instruksi ACI dipergunakan untuk menmbah isi register A dengan data 8 bit (immediate data) dan mengikutsertakan carry bit (cy) dari operasi sebelumnya.

Contoh 3.3 Instruksi ACI 5FH akan menambah isi register A dengan data 5FH dan car ry bit.

A A + 5FH -CY

Instruksi SBI dipegunakan untuk mengurangi isi register A dengan data 8 bit (immediate data dan mengikutsertakan “borrow bit” (cy) dari operasi sebelumnya. Contoh 4.4 Instruksi SBI 2CH akan mengurangi register A dengan data 2CH dan borrow bit A A + 2CH - CY

Catatan Instruksi ADD,ADI,ADC,SUB,SBI,SBB,dan SBI akan mempengaruhi akan mengubah bit-bit S,Z,Ac,P dan CY dari register flag. e. Instruksi INR dan DCR Instruksi INR digunakan untuk menambah dengan 1 isi dari suatu register 8 bit atau lokasi memori yang alamat nya ditunjukan oleh register HL,

Table 4.5 Mnemonic INR A INR B INR C INR D INR E INR H INR L INR M

Symbol operasi A   A+1 B   B+1 C  C+1 D   D+1 E   E+1 H  H +1 L   L+1 [(H)(L)] [(H)(L)]+1

Instruksi DCR dipergunakan untuk mengurangi dengan 1 (menurunkan) isi dari suatu register 8 bit atau lokasi memori yang alamatnya ditunjukkan oleh register HL. Perhatikan Tabel 4.6 berikut ini. Tabel 4.6 Mnemonik

Simbol Operasi 

DCR

A

A

DCR

B

B

DCR

C

C



C –  1  1

DCR

D

D



D –  1  1

DCR

E

E



E –  1  1

DCR

H

H



H –  1  1

DCR

L

L



L –  1  1

DCR

M

|(H)(L)| 



A –  1  1 B –  1  1

|(H)(L)| - 1

Catatan : Instruksi INR dan DCR akan mempengaruhi/mengubah bit-bit S, Z, P dan Ac dari register flag . Tetapi tidak mempengaruhi bit CY. f. Instruksi INX dan DCX Instruksi INX dipengaruhi untuk menambah dengan 1 (menaikkan) isi suatu  pasangan register (16 bit register) seperti pada Tabel 4.7

Tabel 4.7 Mnemonik

Simbol Operasi

INX

B

BC

 BC

INX

D

DE

DE

INX

H

HL



HL + 1

INX

SP

SP



SP + 1

+1

+1

Instruksi DCX dipergunakan untuk mengurangi dengan 1 (menurunkan) isi suatu  pasangan register (16 bit register). Seperti ditunjukkan oleh Tabel 4.8. 4.8. Tabel 4.8 Mnemonik

Simbol Operasi

DCX

B

BC

 BC

DCX

D

DE

DE

DCX

H

HL



HL - 1

DCX

SP

SP



SP - 1

-1

-1

Catatan : Instruksi INX dan DCX tidak mengubah (mempengaruhi) bit status (register ( register flag ) g. Instruksi DAD Instruksi DAD dipergunakan untuk menambah isi pasangan register HL dengan isi suatu pasangan register pada operassi penjumlahan 16 bit. Agar lebih jelas, pelajari Tabel 4.9 berikut.

Tabel 4.9 Mnemonik

Simbol Operasi

DAD

B

HL



HL + BC

DAD

D

HL

 HL

+ DE

DAD

H

HL



HL + HL

DAD

SP

HL



HL + SP

Catatan : Instruksi DAD hanya akan mempengaruhi bit CY dari register Flag.

Langkah Percobaan dan latihan

A. Penjumlahan data-data heksadesimal A.1 Buatlah bagan alir dan program untuk menjumlahkan data-data heksadesimal yang  berada pada register-register D, E, H dan L. Simpan hasilnya pada register A dan B. Gunakan register B untuk menyimpan carry-bit. Tulis carry-bit. Tulis program tersebut mulai dari alamat 0000h. A.2 Bagan alir untuk untuk langkah A.1 adalah sebagai berikut. Bagan Alir

A.3 Program untuk langkah A.1 adalah sebagai berikut.

Alamat

Tabel 4.10 Kode Operasi Label

Mnemonik

0000h 00_ 00_ 00_ 00_ 00_ 00_ 00_ 00_ 00_ 00_ 00_ 00_ 00_ 00_ 00_ 00_ 00_ 00_ 00_ 00_ 00_ 00_ 00_ A.4 Terlebih dahulu tambahkan instruksi di awal program untuk menentukan data register D, E, H dan Lsebelum program dijalankan seperti pada tabel 4.11. Setelah program

dijalankan, catat isi register B dan A dan lakukan perubahan data pada r egister D, E, H dan L sesuai dengan tabel 4.11 Tabel 4.11 Input Data D E H L

Output Data B

A

Perhitungan D + E + H + L

00 00 00 00 00 01 02 03 00 10 20 30 40 50 60 70 A0 A1 A2 A3 FF FF FF FF

A.5 Bandingkan isi register B dan A dengan hasil perhitungan (D + E + H + L)

B. Penjumlahan dua bilangan 24 bit B.1 Buatlah bagan alir dan program program untuk menjumlahkan 2 bilangan 24 bit bit yang berada  pada lokasi memori dengan alamat D002, D001, D000 dan D005, D004, D003. Simpan hasil penjumlahan ini pada alamat ala mat D009, D008, D007, D006. [D002][D001][D000] [D005][D004][D003] [D009][D008][D007][D006]

MSB

LSB

Tulis program saudara mulai alamat 7100h.

B.2 Bagan alir untuk untuk langkah B.1 adalah sebagai berikut. Bagan alir

B.3 Program untuk langkah B.1 adalah sebagai berikut Table 4.12  Alamat

Kode Operasi Operasi

Label

Mnemonik

7100h 71… 71… 71… 71… 71… 71… 71… 71… 71… 71… 71… 71… 71… 71… 71… 71… 71… 71…

B.4 Ujilah program saudara menggunakan data-data data-data pada Tabel 4.13 Tabel 4.13 00 22 56 FF FF

00 33 78 FF FF

Data Input 00 00 44 55 9A 5A FF 00 FF FF

Data Output

00 66 BC 00 FF

00 77 DE 00 FF

C. Penjumlahan 9 bilangan decimal 2 digit C.1 Buatlah program untuk menjumlahkan 9 bilangan decimal 2 digit yang berada pada alamat D000h sampai D008h. simpan hasilnya pada alamat D00Ah dan D009h. Tulis program saudara mulai alamat 8000h.

C.2 Program untuk langakah C1 adalah sebagai berikut. Tabel 4.13 Alamat 8000h 80… 80… 80… 80… 80… 80… 80… 80… 80… 80… 80… 80… 80… 80… 80… 80… 80… 80… 80… 80… 80… 80… 80…

Kode Operasi

Label

Mnemonik

C. Uji program saudara menggunakan data-data decimal pada Tabel 4.15 Tabel 4.15 ALAMAT D000

D001

D002

D003

D004

D005

D006

D007

D008

00

00

00

00

00

00

00

00

00

10

20

30

40

50

60

70

80

90

99

99

99

99

99

99

99

99

99

44

44

44

44

44

44

44

44

44

D00A

D00B

D. Mendapatkan hasil suatu persamaan D.1 Buatlah program untuk mendapatkan hasil perhitungan berdasarkan persamaan matematis berikut. Tulis program saudara mulai pada alamat 8100h. A = B + C – D – E + H

D.2 Program untuk langkah D.1 adalah sebagai berikut: Tabel 4.16 Alamat 8000h 80… 80… 80… 80… 80… 80… 80… 80… 80… 80… 80… 80… 80…

Kode Operasi

Label

Mnemonik

80… 80… 80… 80… 80… 80… 80… 80… 80… 80…

D.3 Ujilah program saudara menggunakan data-data decimal seperti pada table 4.17 Tabel 4.17 Register

Hasil

B

C

D

E

H

99

99

99

99

23

30

40

12

05

08

40

90

00

12

00

80

70

60

50

30

98

76

54

32

10

CY

A

DATA HASIL PERCOBAAN

Analisa

Kesimpulan

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF