Judul Percobaan
No Praktikum
: 02
Nama Pratikan
: Sayyid Al Fuad
No BP
: 1301041028
Kelas/ Kelompok
: 2 B EC / 11
Partner
: Naufal Ichsan
Pembimbing
: 1. Era Madona,SST.M.Sc
2. Muhamad Irmansyah, ST.MT.
Tanggal Praktikum
: 23 Maret 2015
Tanggal Penyerahan
: 30 Maret 2015
Keterangan
Nilai
KATA PENGANTAR
Puji dan syukur penulis ucapkan atas rahmat dan karunia yang diberikan oleh Allah SWT,
sehingga penulis dalam keadaan sehat wal afiat sehingga dapat menyelesaikan laporan
mikroprosesor ini dengan baik dan tepat pada waktunya.
Dalam penyusunan dan penulisan laporan ini masih banyak kekurangan dan kesalahan
dikarenakan kuranganya informasi dan ilmu dalam bidang maintenance. Namun laporan ini
dapat selesai karena bantuan dari beberapa pihak. Oleh karena itu penulis ingin mengucapkan
terimakasih yang sebesar-besarya kepada :
l. Bapak Muhamad Irmansyah, ST.MT. dan Ibuk Era Madona,SST.M.Sc selaku dosen
pembimbing di mata kuliah Mikroprosesor dan Interface.
2. Teman kelompok yang telah mau saling berbagi pengalaman dan saling membantu
dalam praktek di mata kuliah Mikroprosesor dan Interface.
Penulis mengharapakan kritik dan saran yang bersifat membangun demi kelancaran dan
kesempurnaan dalam penyusanan dan penulisan laporan selanjutnya.
Penulis berharap laporan nantinya tidak hanya sebagai pelengkap dari nilai mata kuliah
yang bersangkutan, tetapi juga dapat digunakan sebagai sumber informasi dan ilmu bagi
pembaca, terutama bagi penulis sendiri. Akhir kata penulis minta maaf apabila ada kata-kata
yang kurang berkenan.
Sayyid Al Fuad
DAFTAR ISI
LEMBAR PENGESAHAN i
DAFTAR ISI ... ii
KATA PENGHANTAR iii
BAB I PENDAHULUAN
1.1 Tujuan Percobaan....................................................................................1
1.2 Landasan Teori........................................................................................1
BAB II PERCOBAAN
2.1 Langkah Kerja ........................................................................................6
2.2 Membuat Program ...................................................................................7
BAB III HASIL PERCOBAAN
3.1 Data Hasil Percobaan..............................................................................9
3.2 Analisa Data .............................................................................................9
BAB IV PENUTUP
4.3 Kesimpulan..............................................................................................12
4.4 Saran..........................................................................................................12
DAFTARPUSTAKA ..13
BAB I
PENDAHULUAN
1.1.
Tujuan
Membiasakan para pemakai dengan instruksi aritmatika dan operasi logika.
Menjelaskan tentang mode pengelamatan memori.
Latihan menyusun data untk register-register CPU dan bagian memori.
B,8
A,44H
A,0A4H
c. Status flag.
Setelah suatu operasi logika atau arithmatika selesai dilaksanakan, hasilnya akan
disimpan pada register A dan beberapa status flag (carry, overflow, chage sign, zero result,
parity) juga akan terpengaruh. Status flag ini akan disimpan dalam flip-flop di CPU Z80.
Flip-flop ini membentuk suatu register yang disebut flag register. Data pada register ini
dapat dipindahkan ke memori seperti juga register-register lain dengan menggunakan
instruksi-instruksi khusus (instruksi PUSH). Beberapa status flag diterangkan dibawah ini :
Carry flag.
Carry flag ini akan berada dalam keadaan set (1) bila dalam operasi
penjumlahan yang tidak diberi tanda (+ atau -) hasil yang didapat lebih besar
daripada dalam operasi pengurangan, terjadi dalam keadaan set apabila dalam
operasi pengurangan, terjadi peminjaman. Carry flag juga digunakan sebagai
suatu syarat untuk instruksi-instruksi jam, call, atau atau return. Flag ini
juga berfungsi sebagai penghubung dalam operasi-operasi aritmatika yang
digunakan lebih dari 1 bit. Tiga buah data 8 bit dapat dihubungkan dengan suatu
data 24 bit dengan menggunakan flag carry, 4 data 8 bit juga dihubungkan
sebagai data 32 bit.
Over flow atau Parity flag.
Pada operasi aritmatika komplemen kedua yang menggunakan data ( dapat +
maupun -) maka flag ini berfungsi sebagai overflow flag. Overflow flag dalam
Z80 menyatakan bahwa bilangan komplemen kedua bertanda pada accumulator
telah melebihi kapasitas maksimum (+127) atau kurang dari kapasitas minimum
(-128).
Ketika suat operasi aritmatika dilakukan didalam CPU Z80, bilangan pada
register A dapat dianggap sebagai data yang tidak diberi tanda (0 sampai 255)
atau data yang bertanda (-128 sampai +127). Dengan demikian baik carry flag
maupun overflow flag dapat dipengaruhi oleh operasi aritmatika dengan
keterangan disebelah kananya.
10101100
bilangan tak bertanda 172 atau bilangan bertanda -84.
+
11101000
-----------10010100
01001010
01000010
-----------1
10001100
Sign flag
Jika bit yang paling kiri (bit 7) dari register A adalah satu setelah operasi logika
atau aritmatika, bilangan pada register A di interprestasikan sebagai bilangan
negative. Sign flag ini akan diset menjadi satu. Flag ini akan diabaikan bila
programmer telah menunjuk datanya sebagai bilangan-bilangan tanpa ada.
Flag-flag lain
Flag-flag lain yang dirancang untuk operasi aritmatika BCD tidak lah penting
bagi programmer. Format register yang dibentuk oleh flag ini terlihat seperti
dibawah ini.
S
Sign
Z
Zero
P/V
C
Parity/
Carry
Overflow
Pada mikrokomputer, isi flag register biasanya dinyatakan dengan dua digit
hexadecimal. Pemakai harus menyatakan data dua digit ini dengan suatu
bilangan bener delapan bit. Misalnya, jika flag register adalah 3CH, sign flag
menyatakan positif, nilai tidak nol, parity genap, atau terjadi overflow tapi tidak
ada carry.
BAB II
PERCOBAAN
6. Catatlah kembali data setelah eksekusi yang ada pada register dengan mengisi data
pada register/memori sesuai dengan tebel.
7. Bandingkanlah data pada register sebelum program dieksekusi dan seetelah
eksekusi. Periksalah apakah tiap-tiap register sudah benar. Bila masih ada
kesalahan, kemballilah pada langkah 1 dan periksa lagi.
8. Ulangi langkah 1 sampai 3 untuk percobaan II dan III.
2.2.
Membuat Program
a. Pertambahan (Percobaan 1).
D
E
A
A
L
Start
54
64
D
A+ E
A
Stop
Mnnemonic
LD D, 54
LD E, A6
LD A, D
ADD, A, E
LD L, A
RST-38
Op-Code
16 54
1E A6
7A
83
6F
FF
Alamat
1800 1801
1802 1803
1804
1805
1806
1807
Op-Code
16 FE
1E CE
7A
83
6F
FF
Alamat
1800 1801
1802 1803
1804
1805
1806
1807
Start
FE
CE
D
A+ E
A
Stop
Mnnemonic
LD D, FE
LD E, CE
LD A, D
ADD, A, E
LD L, A
RST-38
Mnemonic
LD A, 99
LD (1A00), A
LD A, (1A00)
LD E, BC
ADD A, E
LD L,A
Op-Code
3E 99
32 00 1A
3A 00 1A
1E BC
83
6F
Alamat
1800 1801
1802 1803 1804
1805 1806 1807
1808 1809
180A
180B
A
(1A01)
A
E
A
HL
FF
A
(1A01)
98
A+E+CY
A
Stop
LD A, FF
LD (1A01), A
LD A, (1A01)
LD E, 98
ADC A+E+CY
LD H,A
RST-38
3E FF
32 01 1A
3A 01 1A
1E 98
8B
67
FF
180C 180D
180E 180F
1810 1811
1812 1803
1804 1805
1806 1807
1808
Start
99
A
(1A00)
BC
A+ E
A
FF
A
(1A01)
98
A+E+CY
A
Stop
Mnemonic
LD (1A00), A
LD A, (1A00)
LD E, EF
ADD A, E
LD L,A
LD A, AF
LD (1A01), A
LD A, (1A01)
LD E, EC
ADC A+E+CY
LD H,A
RST-38
BAB III
Op-Code
3E FC
32 00 1A
3A 00 1A
1E EF
83
6F
3E AF
32 01 1A
3A 01 1A
1E EC
8B
67
FF
Alamat
1800 1801
1802 1803 1804
1805 1806 1807
1808 1809
180A
180B
180C 180D
180E 180F
1810 1811
1812 1803
1804 1805
1806 1807
1808
HASIL PERCOBAAN
Register
HL
BC FA
BC CC
Carry
0
1
Percobaan 3 dan 4
Nilai Preset
Memori
Register
(1A01
(1A00)
DE
)
FFh
99h
98 BC
AEh
FCh
EC EF
Register
HL
98 55
9C EB
0
0
0
0
Carry
1
1
Percobaan 1 :
54h + A6h = FAh
Register F = A8h = 1010 1000
Sign
1
Zero
0
P/V
0
Carry
0
P/V
0
Carry
1
Percobaan 2
FEh + CE = CC
Register F = 99h = 1001 1001
Sign
1
Zero
0
Jika percobaan 1 dan 2 penjumlahan dilakukan dengan metode 8 bit, maka pada
percobaan 3 dan 4 secara 16-bit. Pada percobaan dengan metode 16-bit, digunakan bantuan
alamat untuk pengopersian suatu penjumlahan. Jika diteliti lebih lanjut, percobaan ini sama
saja dengan metode 8-bit namun dilakukan 2 kali dalam suatu waktu. Alamat dibutuhkan
karena pada penjumlahan 8-bit pertama (dimulai dari low bit) bisa terdapat Half Carry yang
akan mempengaruhi operasi penjumlahan 8-bit selanjutnya.
Operasi penjumlahan pertama disimpan sementara pada alamat 1A00, lalu operasi
kedua pada alamat 1A01. Pada opersi penjumlahan di 8-bit kedua, kita harus memasukkan
perintah tambahkan 1 (Carry) yang didapatkan dari hasil pertambahan di 8-bit pertama,
kedalam operasi pertambahan pada 8-bit yang kedua. Mnemonic yang digunakan untuk
menyertakan Half Carry adalah ADC.
Berikut hasil penjumlahan pada percobaan 3 dan 4 :
Percobaan 3 :
8-bit pertama = (1A00) = 99 + BC = 55 (terdapat Carry dan akan dimasukkan ke 1A01).
8-bit kedua = (1A01) = FF + 98 = 198 / 98 (1 adalah carry yang akan dimasukkan pada
1A02).
Jadi hasil penjumlahan dari : FF99 + 98BC adalah = 9855 (terdapat carry).
Percobaan 4 :
Sign
1
Zero
0
BAB IV
PENUTUP
4.1. Kesimpulan
P/V
0
Carry
1
a. Dalam pengoperasian penjumlahan, jika suatu instruksi tidak tersedia pada modul
maka kita harus memindahkan variabel tersebut kedalam instruksi yang tersedia.
b. Mnemonic untuk menambahkan suatu register dengan register lain adalah ADD.
c. Untuk mengetahui suatu penjumlahan terdapat Carry atau tidak adalah dengan
memeriksa register F lalu ubah hasilnya kedalam bentuk biner dan sesuaikan denga
flag-flag yang sudah ditentukan.
d. Dibutuhkan bantuan alamat untuk pengoprasian penjumlahan 16-bit
e. Pada penjumlahan 16-bit, pengoperasian penjumlahan dari 8-bit high harus
melibatkan Carry yang didapatkan dari pengopersian penjumlahan 8-bit high low jika
ada.
f. Mnemonic yang digunakan untuk melibatkan Carry dalam pengoperasian
penjumlahan 16-bit adalah ADC.
4.2. Saran
a. Berdoalah terlebih dahulu sebelum melakukan praktek.
b. Pakailah jas lab ketika memasuki labor.
c. Dengarkan instruksi dosen demi kelancaran dalam praktek.
d. Gunakan alat alat seusuai dengan fungsinya demi mencegah terjadinya kerusakan
alat.
e. Kembalikan alat alat dan rapikan meja kerja apabila telah selesai melakukan praktek.
DAFTAR PUSTAKA