Laporan Sistem Mikroprosesor "Aplikasi Dasar Instruksi Arithmetik dan Instruksi Operasi Logik" - Blognya iki

Blognya iki

Selamat datang di blog yang sederhana ini

Post Top Ad

Tuesday 1 May 2018

Laporan Sistem Mikroprosesor "Aplikasi Dasar Instruksi Arithmetik dan Instruksi Operasi Logik"



APLIKASI DASAR INSTRUKSI ARITHMETIK DAN INSTRUKSI
OPERASI LOGIK

A.           Tujuan Percobaan
1.        Membiasakan para pemakai dengan instruksi arithmetik dan instruksi operasi logik.
2.        Menjelaskan tentang mode addressing memory.
3.        Menjelaskan tentang status flag.
4.       Latihan menyusun data untuk register-register CPU dan bahan memory.


B.            Dasar Teori
Sebuah program diperlukan saat mikrokomputer digunakan untuk melaksanakan sederetan operasi (menghitung, memasukkan dan mengeluarkan data) seperti halnya dalam proses pengontrolan alat-alat. Program tersebut tersusun dari sejumlah perintah yang berurutan yang dibaca dan dieksekusi. Namun sebuah mikroprosesor hanya mampu membaca bahasa mesin saja. Di dalam program seperti BASIC, FORTRAN, yang dikenal sebagai bahasa tingkat tinggi, sudah ada bagian yang berfungsi menterjemahkannya ke bahasa mesin. Sehingga pemakai lebih mudah memahami bahasa BASIC/Fortrain. Sebelum dieksekusi program tersebut akan diterjemahkan dahulu ke bahasa mesin, sehingga prosesnya menjadi lebih lambat (beberapa ratus kali lebih lambat). Karena pemakaian bahasa tingkat tinggi akan memperlambat suatu proses, karena itulah dipilih bahasa mesin untuk mengontrol mesin. Panjang word suatu perintah diset dalam satuan 8 bit(=1byte). Bergantung kepada jumlah bit yang digunakan, ada empat jenis perintah; perintah 1-byte, perintah 2-byte, 3–byte dan perintah 4-byte (Hikmat, 2012).
Instruksi AND, OR, dan XOR digunakan untuk melakukan operasi logika isi dari akumulator terhadap data suatu register 8 bit atau data immediate, atau data suatu lokasi memori (Putu Sudira, 2013).
Instruksi arithmetik 8 bit dan operasi-operasi logik dalam CPU Z80 dilaksanakan pada register A (Acumulator). Register-register A, B, C, D, E, H, dan L dapat digunakan sebagai operand bersama-sama dengan register A pada instruksi-instruksi LD. Jika data ditransfer antara memory dan register A, address memory dapat ditunjukkan oleh register-register HL, IX, atau IY. Dibawah ini terdapat instruksi arithmetik dan instruksi operasi logik beserta artinya (Nur Amril, 2011).
(1) ADD A         ;
data pada register A ditambahkan pada register A sendiri, artinya data diduakalikan atau digeser ke kiri 1 bit
(2) ADC B         ;
Isi register B bersama dengan Carry Flag ditambahkan pada register A.
(3) SUB C         ;
Data pada register A dikurangi dengan data pada register C
(4) SBC )HL)     ;
Isi register A dikurangi dengan isi memory yang addresnya ditunjuk oleh HL, dikurangi lagi dengan carry flag.
(5) AND D        ;
Operasi AND logik antara register D dan register A
(6) OR  OFH      ;
Operasi OR logik  antara data OFH dan register A.
(7) XOR A         ;
Operasi OR-exclusive antara register A dengan dirinya sendiri. (karena register A sama dengan register A, maka hasilya pasti nol).
(8) INC H          ;
Menambah isi register H dengan 1 (increment).
(9) INC (IX)       ;
Menambah isi memory pada address yang ditunjuk oleh IX dengan 1.
(10) DEC C        ;
Mengurangi isi register C dengan 1 (decrement)
(11)DEC(1Y+3) ;
Hasil penjumlahan dari isi register 1Y dan 3 diapakai sebagai penunjuk address pada memmory. Isi memory pada address yang ditunjuk oleh IY+3 dikurangi dengan 1
Mode addressing data :
1.         Addressing Register
2.         Addressing Register Tidak Langsung
3.         Addressing Langsung
Status Flag (Modul Praktikum, 2017) :
1.         Carry Flag
2.         Overflow/ Parity Flag
3.         Zero (nol) Flag
4.         Sign (Tanda) Flag

C.           Alat Dan Bahan
1.         Trainer Mikroprosesor                                           1 buah
2.         Adaptor                                                                 1 buah
3.         Modul Mikroprosesor                                          1 buah

D.           Kode Program
1.         Percobaan I
Address Memory
Opcode & Operand
Bahasa Mesin
1800H
(address awal)
ORG
1800H

LD
A, E
7B

ADD
A, D
82

LD
L, A
6F

LD
A, 0
3E00

ADC
A, 0
CF00

LD
H, A
67

RST
38H
FF

Nilai Preset
Hasil Pelaksanaan Program
Register
Register
Flag
D
E
HL
Sign
Zero
P/V
Carry
5AH
A6H
0100
0
0
0
0
46H
77H
00BD
0
1
0
0


2.         Percobaan II
Address Memory
Opcode & Operand
Bahasa Mesin

1800H
(address awal)
ORG
1800H


LD
A, (1A00H)
3A001A


ADD
A, E
83


LD
L, A
6F


LD
A, (1A01H)
3A011A


ADC
A, D
8A


LD
H, A
67


RST
38H
FF


Nilai Preset
Hasil Pelaksanaan Program
Memory
Register
Register
Flag
(1A01H)
(1A00H)
DE
HL
Sign
Zero
P/V
Carry
02
01
4677
4878
0
0
0
0

E.            Pembahasan
Praktikum ini bertujuan agar praktikan dapat menjelaaskan tentang mode addressing memory, status flag dan menyusun data untuk register-register CPU dan bagian memori.

1.      Percobaan I
Pada percobaan pertama bertujuan untuk menjumlahkan isi register D dan isi register E bersama-sama. Hasilnya disimpan pada pasangan register HL. Sebelum memasukkan digit biner ke mikroprosesor dari tabel 1, bahasa asembli yang terdapat di tabel tersebut harus diubah ke bahasa mesin supaya lebih memudahkan menjalankan suatu perintah. Sehingga bahasa mesin yang diperoleh dapat dicantumkan seperti dalam tabel.
Setelah diketahui bahasa mesin, masukkan bahasa mesin ke mikroprosesor dengan alamat awal 1800H. Kemudian masukkan nilai di Reg E, kemudian masukkan nilai Reg A yang sesuai dengan Reg E. Sedangkan untuk Reg D diisi dengan nilai sesuai dengan keinginan, kemudian tekan Reg A kemudian isi kembali di Reg A dengan Reg D yang ditambahkan Reg E. Tekan tombol Reg L sehingga nilai yang keluar sama dengan Reg A. Kemudian tekan reg A dengan nol. Karena nilai yang dimasukkan pada reg-reg tersebut tidak menimbulkan carry maka nilai yang terdapat di reg A tersebut dimasukkan pada reg H. Setelah proses pemasukan data telah selesai, praktikan dapat mengecek alamat maupun register yang muncul, untuk memudahkan pengecekan setiap alamat maka tekan tombol PC dan Step. Maka data yang keluar dapat dicek satu-persatu. Sedangkan jika ingin langsung melihat hasil akhir setelah proses pemasukkan data tekan tombol PC dan GO.
Setelah bahasa mesin tersebut telah dimasukkan pada mikroprosesor, maka nilai 5AH dimasukkan pada register D dan A6H pada register E sehingga ketika menekan tombol register HL nilai yang muncul 0100. Hal ini membuktikan bahwa data yang dimasukkan mengalami kesinkronan dengan program yang dijalankan. Selanjutnya dengan menekan tombol PNC dapat diketahui P/V dan Carry bernilai nol. Kemudian menekan tombol SZH dapat diketahui Sign dan Zero bernilai nol.
Jika dihitung secara manual, untuk register HL=0100 diketahui nilai dari PNC=0000FL yang merupakan nilai biner akhir dan nilai dari SZH=0000FH yang merupakan nilai biner awal. Kemudian nilai biner yang didapat digabungkan menjadi 00000000. Dari angka biner tersebut dapat diketahui bahwa menurut format register yang terbentuk oleh flag angka pertama dari susunan biner tersebut adalah Sign=0, angka kedua adalah Zero=0, angka keenam adalah P/V=0 dan angka kedelapan adalah Carry=0. Dari hasil tersebut dapat diketahui bahwa perhitungan secara praktikum dan manual hasilnya sama.

2.      Percobaan II
Pada praktikum ini bertujuan untuk menjumlahkan data 16 bit di memori pada alamat 1A00H- 1A01H pada data 16 bit yang ada pada pasangan register DE dan hasilnya disimpan pada pasangan register HL. Sebelum memasukkan alamat ke mikroprofesor, hal yang harus diperhatikan ialah bahasa asembli. Bahasa asembly di sini harus diubah ke bahasa mesin terlebih dahulu yaitu sesuai yang tercantum pada tabel kode program.
Kemudian masukkan alamat awal 1800 pada mikroprofesor, kemudian tambahkan bahasa mesin pada tabel ke dalam mikroprofesor. Setelah sampai di FF tekan tombol ADDRESS kemudian masukkan 1A01H dan tekan tombol DATA kemudian masukkan nilai sesuai dengan keinginan. Setelah itu masukkan kembali alamat 1A00H dan tekan tombol DATA kemudian masukkan nilai sesuai dengan keinginan. Setelah itu, tekan tombol reg DE dan isi dengan nilai yang diinginkan. Kemudian tekan tombol reg HL untuk melihat hasil akhir. Kemudian jika ingin melihat hasil akhirnya saja maka bisa langsung dengan menekan tombol PC dan GO. Kemudian tekan tombol reg H L. Pada praktikum kali dapat dijelaskan bahwa data yang berada pada alamat 1A00H jika ditambahkan dengan data pada register E maka hasilnya akan muncul pada register L. Sedangkan data berada pada alamat 1A01H jika ditambahkan dengan data yang berada pada register D hasilnya akan muncul pada register H. Berdasarkan percobaan, didapatkan data sesuai pada tabel kode program.
Jika dihitung secara manual untuk register DE=4677 dan HL=4878, diketahui nilai dari PNC=1000FL yang merupakan nilai biner akhir dan nilai dari SZH=0000FH yang merupakan nilai biner awal. Kemudian nilai biner yang didapat digabungkan menjadi 00001000. Dari angka biner tersebut dapat diketahui bahwa menurut format register yang terbentuk oleh flag angka pertama dari susunan biner tersebut adalah Sign=0, angka kedua adalah Zero=0, angka keenam adalah P/V=0 dan angka kedelapan adalah Carry=0. Dari hasil tersebut dapat diketahui bahwa perhitungan secara praktikum dan manual hasilnya sama. 
F.            Kesimpulan
1.         Pada percobaan  I data yang ada pada register DE dijumlahkan dengan data yang ada pada register E dan hasilnya dilihat pada register HL
2.         untuk melihat sign dan zero yaitu dengan menekan reg SZH sedangkan untuk  P/V dan Carrynya tekan reg PNC .
3.         Untuk memulai mengessekusi sebuah program yang sudah dimasukkan harus menekan Reset, PC, GO.

G.           Daftar Pustaka
Hikmat. 2012. Aplikasi Mikroprosesor (Bahasa). Bandung : Universitas Pendidikan Indonesia
Sudira, Putu. 2013. Sistem Mikroprosesor dan Mikrokontroler. Yogyakarta :
Universitas Negeri Yogyakarta

Amril, Nur. 2011. Mikroprosesor. Makassar : Universitas Negeri Makassar

Tim Penyusun. 2017. Modul Praktikum Sistem Mikroprosesor. Pontianak : Universitas Tanjungpura

No comments:

Post a Comment

Post Bottom Ad