Mikro 4
Mikro 4
Percobaan IV
INSTRUKSI PERCABANGAN DAN PROGRAM LOOP
OLEH:
RISALUDDIN
092514015
S1
PERCOBAAN IV
INSTRUKSI PERCABANGAN DAN PROGRAM LOOP
A. TUJUAN PERCOBAAN.
1. Untuk membiasakan pemakai dengan aplikasi instruksi-instruksi
cabang bersyarat dan tak bersyarat.
2. Untuk membiasakan pemakai dengan teknik-teknik merancang
program program loop.
3. Melatih menggunakan status flag dalam pengambilan keputusan.
B.
TEORI DASAR
A. Penghitung Program (Program Counter):
Penghitung Program/Program Counter (PC) adalah register 16
bit yang penting dalam CPU. Jika tegangan pada CPU kaki RESET
(kaki 26) turun. menjadi 0 dan kemudian naik menjadi 1 (dengan
menekan tombol RS), PC akan menjadi 0000 H. Pelaksanaan program
kemudian akan dimulai dari address 0000 H menurut pulsa clock yang
dihasilkan oleh sistem hardware. Setiap kali CPU selesai mengambil
satu byte untuk tiap-tiap instruksi dari memory, secara otomatis PC
akan ditambah dengan 1. (Rangkaian kontrol dalam CPU menentukan
berapa byte yang tercakup dalam instruksi tersebut setelah CPU
mengambil
byte
pertama
instruksi
itu.
Instruksi
hanya
akan
program
dilaksanakan
pada
address
berikutnya
assembly Z80)
Sebenarnya, dalam bahasa assembly JP (jump) digunakan
untuk menyatakan perubahan dalam urutan pelaksanaan program.
Instruksi berikut ini mempunyai arti yang sama :
LD
PC,1828 H
= JP 1828 H
1OH
JP
Z,1828H
ke
address
1828
dan
lanjutkan
pelaksanaan program.
JP
C,245AH
ADD
A,B
;Sebaliknya,
yaitu
pelaksanaan program.
jika
A>10
H,
lanjutkan
C,XXXX
JP
NC,XXXX
JP
Z,XXXX
JP
NZ,XXXX
JP
JP
PO,XXXX
JP
P,XXXX
JP
M,XXXX
D. Jump Relative:
Untuk mengurangi luas memory yang ditempati program dan
juga untuk menekan biaya sistem mikrokomputer, mikrokomputer Z 80
dapat menggunakan address-address relative untuk menunjukkan
perloncatan suatu, program. Karena sebagian besar perloncatan
dalam suatu program-berada diantara +127 dan -128, suatu bilangan
yang terdiri dari 1 byte dapat digunakan untuk menyatakan perloncatan
ini. Untuk setiap satu operasi loncat, kita dapat menghemat memory I
byte
dibandingkan
bila
kita
menggunakan
instruksi
JP
yang
didapat
dengan
JR
NC,7FH
(nilai maximum)
JR
Z,80H
selesai
dilaksanakan.
Hal
ini
didapat
dengan
C,1OH
XOR A
LD
HL,1900H ;Gunakan
pasangan
register
HL
sebagai
penunjuk
D,A
operasi
carry
penambahan.
yang
Nol-kan
register D.
XX
INC HL
menunjuk
untuk
NC,YY
;Jika
YY untuk melanjutkan
ke
address
pelaksanaan program.
INC D
YY
DEC C
JR
NZ,XX
LD
E,A
;Jika
ORG
1800H
L, D
HL,1900H
LD
B,20H
LOOP
LD
(HL),A
INC
HL
DJNZ
LOOP
RST
38H
Loop Bersarang
Dalam program-program yang lebih rumit, suatu loop dapat
bersarang atau berada di dalam loop yang lain secara total. Berikut ini
adalah cara mengubah isi setiap kelompok data dalam bentuk bilangan
hexadesimal:
C.
ADDRESS
OBJECT CODE
1900H 190FH
1910H 191FH
1920H 192FH
1930H 193FH
1940H 194FH
1950H 195FH
1960H 196FH
1970H 197FH
1980H 198FH
1990H 199FH
19A0H 19AFH
19B0H 19BFH
19C0H 19CFH
19D0H 19DFH
19E0H 19EFH
19F0H 19FFH
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
LANGKAH PERCOBAAN.
1 .Percobaan 1
Percobaan ini merupakan program loop. Loop merupakan suatu
alat yang paling dalam merangcang program. Adapun urutan
langkah kerjanya yaitu sebagai berikut:
2.
7.
D.
HASIL PERCOBAAN.
1. Percobaan 1
1. Preset register A pada 0 Lalu jalankan program diatas:
Hasilnya :
= 00
2. Percobaan 2
Dalam program-program yang lebih rumit, suatu loop dapat
bersarang atau berada di dalam loop yang lain secara total. Berikut ini
adalah cara mengubah isi setiap kelompok data dalam bentuk bilangan
hexadesimal:
ADDRESS
1900H 190FH
1910H 191FH
1920H 192FH
1930H 193FH
1940H 194FH
1950H 195FH
1960H 196FH
1970H 197FH
1980H 198FH
1990H 199FH
19A0H 19AFH
19B0H 19BFH
19C0H 19CFH
19D0H 19DFH
19E0H 19EFH
19F0H 19FFH
E.
ANALISA DATA.
a. Percobaan 1.
ORG
1800 H
LD
HL,1900 H
LD
B,20 H
LD
(HL),A
INC
HL
DJNZ
Loop
OBJECT CODE
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
RST
38 H
SOURCE STATEMENT
LD, HL,1900 H
LD B,20 H
LD (HL),A
INC HL
DJNZ
RST 38 H
OBJECT CODE
21
00
19
06
20
77
23
10
FC
FF
Pada
address
1803
dengan
objek
kode
06
yang
Dangan
melakukan
preset
register
A dengan
berbagai
1800 H
LD
HL,19FF H
LD
B,10 H
LD
(HL) ,C
DEC
HL
DJNZ
Loop 1
DEC
JP
NZ, Loop 2
RST
38 H
ADDRESS
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
180A
180B
180C
180D
180E
-
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
SOURCE
OBJECT
STATEMENT
LD HL,19FF H
CODE
21
FF
19
OE
OF
06
10
71
2B
10
FC
C2
05
18
FF
LD B,0F H
LD B,20
LD [HL],C
DEC
HL
DJNZ,LOOP 1
JP NZ, Loop 2
RST 38H
LD HL, (C) artinya isi reg HL dijumlahkan dengan data yang ada pada
reg C
Dari tabel pengamatan diatas dapat kita lihat bahwa untuk address
19F0 19FF isi memorinya adalah 0F.
F.
KESIMPULAN.
1. Dalam instruksi percabangan bersyarat fungsi ini menyebabkan
sebuah mikrokomputer mampu menanggapi berbagai syarat
yang