Anda di halaman 1dari 8

PRAKTIKUM III OPERASI ARITMATIKA

I. Tujuan Instruksional Khusus


1. Praktikan dapat membedakan pengalamatan langsung, pengalamatan tidak
langsung, dan pengalamatan eksternal.
2. Praktikan dapat menggunakan instruksi aritmatika untuk memanipulasi data.

II. Dasar Teori


Operasi aritmatika di dalam mikrokontroler MCS-51 dapat dilakukan dengan
format yang sudah ditentukan, yaitu : operasi add untuk menjumlahkan dua buah
bilangan, subb untuk pengurangan dua buah bilangan, mul untuk perkalian dua
buah bilangan yang berada pada register A dan register B, dan div untuk
pembagian dua buah bilangan yang berada pada register A dan register B.

Untuk penjumlahan ada dua jenis yaitu add dan addc. Add digunakan untuk
menjumlahkan isi register A dengan isi salah satu register serbaguna (R0…R7),
register A dengan data langsung, dan register A dengan isi alamat yang
ditunjukkan oleh register atau alamat yang ditunjukkan oleh angkalangsung.
Addc sama dengan add tetapi addc akan mengikutkan carry bit dalam setiap
operasi penjumlahan.

Untuk pengurangan menggunakan perintah subb, yaitu mengurangkan data yang


ada di register A dengan salah satu register serbaguna (R0…R7), register A
dengan data langsung, dan register A dengan isi alamat yang ditunjukkan oleh
register atau alamat yang ditunjukkan oleh angka langsung.

Perkalian hanya dilakukan untuk isi dua buah register yang berada pada register A
dan register B, dan hasilnya ditempatkan pada register A. Pembagian juga
dilakukan hanya untuk isi dua buah register yaitu register A dibagi isi register B,
hasilnya ditempatkan di register A dan sisa pembagian pada register B.

ADD A,Rn. Instruksi ini adalah instruksi penjumlahan isi register A dengan isi
salah satu register R0…R7.

1
Contoh ADD A,R3 ; menjumlahkan isi register A dengan isi register R3 dan
hasilnya ditempatkan pada register A.
Simbol operasinya: A A+R3

ADD A,direct. Instruksi ini digunakan untuk menjumlahkan isi register A dengan
data pada alamat memori tertentu secara langsung.
Contoh: ADD A,35h; menjumlahkan isi register A dengan isi memori pada alamat
35h.
Simbol operasinya: A  A + (alamat 35h)

ADD A,@Ri. Instruksi ini digunakan untuk menjumlahkan isi register A dengan
isi alamat yang ditunjukkan oleh register serbaguna R0 atau R1.
Contoh: ADD A,@R1; menjumlahkan isi register A dengan isi memori yang
alamatnya ditunjukkan oleh register R1.
Simbol operasinya: A  A+ (@R1)

ADD A,#data. Instruksi ini digunakan untuk menjumlahkan isi register A dengan
data langsung.
Contoh: ADD A,#50h; menjumlahkan isi register A dengan angka 50h.
Simbol operasi: A  A + 50h

Operasi penjumlahan dengan instruksi ADDC pada prinsipnya sama dengan


penjumlahan ADD, hanya saja ADDC mengikutkan Carry bit dalam
penjumlahannya.

ADDC A,Rn. Contoh: ADDC A,R1; menjumlahkan isi register A dengan isi R1
ditambah carry bit.
Simbol operasi: A  (A + R1 + CY)

ADDC A,direct. Contoh: ADDC A,40h; menjumlahkan isi register A dengan isi
alamat 40h ditambah carry bit.
Simbol operasi: A  (A+ alamat 40h + CY)

ADDC A,@Ri. Contoh: ADDC A,@R0; menjumlahkan isi register A dengan isi
alamat yang ditunjukkan oleh register R0 ditambah carry bit.
Simbol operasi: A  (A + @R0 + CY)

ADDC A,#data. Contoh: ADDC A,#25h; menjumlahkan isi register A dengan


data langsung 25h ditambah carry bit.
Simbol operasi: A  (A + 25h + CY)

Register Flag dan PSW(Program Status Word)


Flag disebut juga sebagai bit status pencatat dan penyimpan status keadaan
sebagai akibat dari sebuah proses instruksi pada program. Status ini sangat
penting untuk mengetahui keadaan dari suatu proses instruksi sehingga dapat
dipakai sebagai dasar pengambilan keputusan. AT89S51 memiliki empat flag
matematik yang mencatat status akibat dari operasi matematik yaitu Carry (C),
Auxiliary Carry (AC), Overflow (OV), dan Parity (P). Register PSW susunannya
adalah sebagai berikut:
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 0
-
CY AC F0 RS1 RS0 OV P

Bit Simbol Fungsi


7 CY Flag Carry ; digunakan untuk aritmetika
JUMP, ROTATE, dan Boolean
CY = 1 berarti ada Carry
CY = 0 berarti tidak ada Carry
6 AC Flag Auxiliary Carry : digunakan untuk
Aritmetika BCD
AC = 1 berarti ada Carry dari bit 3 ke bit 4
AC = 0 berarti tidak ada Carry dari bit 3 ke bit 4
5 F0 Flag 0
4 RS1 Pemilih Bank bit 1
3 RS0 Pemilih Bank bit 0
RS1 RS0
0 0 : Bank 0
0 1 : Bank 1
1 0 : Bank 2
1 1 : Bank 3
2 OV Flag Overflow : untuk instruksi matematik bilangan
bertanda
1 - Tidak digunakan
0 P Flag Paritas ; 1 = paritas ganjil; 0 = paritas genap

III. Daftar Alat dan Bahan:


 Siumulator 8051 (MIDE51)
 Cross assembler 8051 (MIDE51)
 IBM PC kompatibel

IV. Keselamatan Kerja


Untuk melaksanakan praktikum Mikroprosesor dan Embedded System II ini
diperlukan langkah-langkah untuk keselamatan:
1. Sebelum praktikum dimulai, siapkan jobsheet untuk setiap praktikan
2. Pastikan hubungan kabel power pada komputer sudah tersambung dan tidak
ada kabel yang terbuka.
3. Pastikan hubungan computer dengan peralatan lainnya, seperti keyboard dan
mouse sudah terhubung.
4. Hidupkan computer, dan tunggu sampai system operasi selesai loading dan
sudah dapat digunakan.
5. Jalankan hanya program MIDE51.
6. Ketikkan program menggunakan editor assembler pada MIDE51.
7. Selesai melaksanakan praktikum, matikan computer dan kembalikan
keyboard dan mouse pada tempatnya, dan matikan MCB pada panel power di
meja kerja.
8. Rapikan kursi dan peralatan lainnya, dan bersihkan meja dari segala kertas
kerja.

V. Langkah Kerja
1. Jalankan program MIDE51.exe
2. Buka file baru: dari Menu pilih File dan klik New
3. Ketik program di bawah ini :
; program operasi aritmatika
; programmer : ketik nama sendiri
direct equ 30h
data equ 0dh
org 00h
add a,r7 ; add register to accumulator
add a,direct ; add direct byte to accumulator
add a,@r1 ; add indirect ram to accumulator
add a,#data ; add immediate data to accumulator
addc a,r7 ; add register to acc. With carry
addc a,direct ; add direct byte to acc. With carry
addc a,@r1 ; add indirect ram to acc. With carry
addc a,#data ; add immediate data to acc. / carry
subb a,r7 ; subtract reg. From acc. With borrow
subb a,direct ; sub.Direct byte From acc. / borrow
subb a,@r1 ; sub.Indirect ram From acc. / borrow
subb a,#data ; sub.Indirect Data From acc. / borrow
inc a ; increment accumulator
inc r7 ; increment register
inc direct ; increment direct byte
inc @r1 ; increment Indirect ram
dec a ; decrement accumulator
dec r7 ; decrement register
dec direct ; decrement direct byte
dec @r1 ; decrement indirect ram
inc dptr ; increment data pointer
mul ab ; multiply a and b
div ab ; divide a by b
da a ; decimal adjust accumulator
end
4. Simpan dengan nama perc3.asm
5. Lakukan compile file sampai program dinyatakan benar dengan tampilan
seperti terlihat pada gambar 4.3 di bawah ini.

Gambar 4.3 Tampilan Hasil Compile


6. Tampilkan Menu Build dan Sim untuk melakukan RUN Program.
7. Tampilkan memori RAM dengan cara:
 Pada Menu pilih Configure
 Pilih option Internal RAM, dan akan muncul tampilan seperti gambar
4.4 di bawah ini.

Gambar 4.4 Tampilan Internal RAM

8. Tampilkan register CPU, masing-masing untuk register ACC, B, CY, R0, R7


dengan cara:
 Pada Menu pilih Configure dan pilih CPU Register. Selanjutnya masing-
masing pilih register ACC, B, CY, R1, R7, dan DPTR.
 Kemudian tampilkan CPU Register dalam tampilan Desimal. Tampilan
seperti gambar 3.5 di bawah ini.

Gambar 3.5 Tampilan Set Register Value


9. Sebelum dilakukan simulasi, berikan kondisi awal untuk isi register dan isi
alamat :
ACC = 20h; R1 = 20h
B = 06h; R7 = 20h; DPTR = 0040h; Alamat 0030h = 07h
10. Lakukan simulasi program dengan menmggunakan step (tekan tombol F11).
11. Lakukan langkah 12 secara berulang sampai program selesai dan catat
hasilnya dalam tabel. Setiap satu kali menekan tombol F11 catat masing-
masing untuk Register ACC, B, CY, R0, R7, dan DPTR.
12. Apabila terdapat CY(carry) maka status PSW akan menampilkan huruf C dan
bit ke-7 bernilai 1, seperti gambar berikut:

13. Catat juga hasil percobaan untuk data pada alamat RAM 0030h.

VI. Tabel Data Pengamatan

Tabel 3.1 Tabel Data Pengamatan

REGISTER
Tombol Alamat
DPTR
F7 ACC B CY R1 R7 (0030h)
0x 20h 06h 0H 20h 20h 0040h 07h

1x 40h …….. …….. …….. …….. …….. …………

2x …….. …….. …….. …….. …….. …….. …………

3x …….. …….. …….. …….. …….. …….. …………

4x …….. …….. …….. …….. …….. …….. …………

5x …….. …….. …….. …….. …….. …….. …………

6x …….. …….. …….. …….. …….. …….. …………

7x …….. …….. …….. …….. …….. …….. …………

8x …….. …….. …….. …….. …….. …….. …………

9x …….. …….. …….. …….. …….. …….. …………

10x …….. …….. …….. …….. …….. …….. …………

11x …….. …….. …….. …….. …….. …….. …………

12x …….. …….. …….. …….. …….. …….. …………

13x …….. …….. …….. …….. …….. …….. …………


VII.
14xPertanyaan
……..Praktikum
…….. …….. …….. …….. …….. …………

27
1. Berapa kalikah anda menekan tombol Trace into (F7) sampai program
selesai?
2. Apakah perbedaan instruksi ADD A,R1 dan ADD A,@R1?
3. Apakah perbedaan instruksi INC R1 dan INC @R1?

VII. Standar Penilaian


Nilai
No Soal
Benar Salah

1 Pengisian Data Borang 55% 20%

2 Pertanyaan No. 1 15% 2%

3 Pertanyaan No. 2 15% 2%

4 Pertanyaan No. 3 15% 2%

28

Anda mungkin juga menyukai