A. Operasi Aritmatika
I. TujuanPraktikum
:Setelahsiswa/imelakukanpraktikumdiharapkandapat :
1. Menjalankan program operasi aritmatika serta
mengecek isi setiap register yang digunakan.
2. Menjalankan
program operasi logika serta
mengecek isi setiap register yang digunakan.
I. AlatdanBahanpraktikum
:
1.
Piranti MPF-1 Z-80 simulator.
2.
LembarTugas / Kerja
3.
Unit Address Decoder.
III.
TeoriDasar
Padadasarnyahanyaterdapat 5 macamoperasiaritmatik yang
dapatdilaksana-kanolehmikroprosesor Z-80. Operasiaritmatiktersebutadalahpenjumlahan,
pengurangan, tambahsatu, kurangsatudanmembandingkan.
Operasipenjumlahanituadaduamacamyaitu ADD dan ADC (penjumlahandengancarry-nya). Operasipengurangan juga adaduamacamyaitu SUB dan
SBC (pengurangandengancarry-nya). Selain itu dapat dibedakan dibedakan
operasi 8 bit dengan operasi 16 bit. Untuk operasi 8 bit salah satu datanya
harus berada pada register A (Akumulator).
Mnemonic dan arti simbolnya pada operasi 8 bit
adalah sebagai berikut :
Mnemonic
|
Artisimbol / Simboloperasi
|
ADD A, S
ADC A, S
SUB A, S
SBC A, S
INC s
DEC s
CP s
|
A ¬A + s
A ¬A +
s + cy
A ¬A - s
A ¬A -
s - cy
s ¬s + 1
s ¬s - 1
A -
s (dimanaharga A tetap).
|
Keterangan :
S : register A,
B, C, D, E, H,
L, n, (HL),
(IX + d), (IY + d)
n : data 8 bit
langsung
cy : carry
Mnemonic
danartisimbolnyapadaoperasi 16 bit adalahsebagaiberikut :
Mnemonic
|
Artisimbol / Simboloperasi
|
ADD A, S
ADC A, S
SBC A, S
ADD IX, pp
ADD IY, rr
INC tt
DEC tt
|
HL ¬HL + ss
HL ¬HL + ss + cy
HL ¬HL - ss – cy
IX ¬IX + pp
IY ¬IY + rr
tt¬tt + 1
tt¬tt - 1
|
Keterangan :
ss : untuk
BC, DE, SP, HL
pp : untuk BC, DE, SP, HL
rr : untuk
BC, DE, SP, HL
tt : untuk
semua register 16 bit
B. Operasi Logika
Operasilogikaituterdiridari AND, OR, NOT, EXOR.
Adapuntabelkebenarandarioperasilogika, sbb :
AND
|
OR
|
EXOR
|
||||||
P
|
Q
|
(P x Q)
|
P
|
Q
|
(P + Q)
|
P
|
Q
|
(P Å Q)
|
0
0
1
1
|
0
1
0
1
|
0
0
0
1
|
0
0
1
1
|
0
1
0
1
|
0
1
1
1
|
0
0
1
1
|
0
1
0
1
|
0
1
1
0
|
Contoh :
P =
10110010B = B2H P = 10110010B = B2H P = 10110010B = B2H
Q =
01101010B = 6AH Q = 01101010B = 6AH
Q = 01101010B = 6AH
------------------------- AND ------------------------ OR -----------------------EXOR
00100010B = 22H 11111010B
= FAH
11011000B = D8H
C. Register Flag
Register flag
merupakan register pembantu terhadap operasi aritmatik dan operasi logika. Bentuk
bentuannya berupa menyimpan tanda keadaan bilamana terjadi carry, non-carry,
borrow, zero, parity / overflow. Letak difinisi simpan keadaan flag pada
register F dapat dilukiskan sebagai berikut :
Bit7
|
Bit6
|
Bit5
|
Bit4
|
Bit3
|
Bit2
|
Bit1
|
Bit0
|
S
|
Z
|
-
|
H
|
-
|
P/V
|
N
|
C
|
Keterangan : S
: sign P/V : parity
/ overflow
Z : zero N : non-carry
H
:halfcarry C : carry
Denganadanyaoperasiaritmatikataulogikamakakejadiandari
register F dapatdibuattabelsebagaiberikut :
Bit
|
Nama Flag
|
Keterangan
|
0
|
C
|
0 : operasi aritmatik/logika tidak
terjadi carry
1 : operasi aritmatik/logika terjadi
carry
|
1
|
N
|
0 : operasi
yang telahterjadibukansubstract
1 : operasi
yang telahterjadiadalahsubstract
|
2
|
P/V
|
0 : parity
even (genap) atautidakterjadi overflow
1 : parity
odd (ganjil) atauterjadi overflow
|
3
|
-
|
Tidakdigunakan.
|
4
|
H
|
0 :adisi /
substract non-carry di bit 4 reg. A
1 :adisi /
substractada carry di bit 4 reg. A
|
5
|
-
|
Tidakdigunakan.
|
6
|
Z
|
0 : hasil operasi aritmatik / logik
tidak nol
1 : hasil operasi aritmatik / logik =
nol
|
7
|
S
|
0 :
hasiloperasiaritmatik / logikadalahpositif
1 :
hasiloperasiaritmatik / logikadalah negative
|
Program I
:
Address
|
Op-Code
|
Mnemonic
|
Keterangan
|
1800
1803
1805
1807
1809
180B
180C
180E
1810
1811
1814
1815
1816
1817
1818
1819
181B
181D
181F
1820
1821
|
3A 20 18
06 09
0E 0A
16 03
1E 04
80
3E 00
CE 00
A0
3A 21 18
AF
1C
15
B8
DE 01
ED 44
2F
FF
0A
|
LD A(1820H)
LD B, 09H
LD C, 0AH
LD D, 03H
LD E, 04H
ADD A,
B
LD A, 00H
ADC A,
00H
ADD A,
B
LD A, (1821)
XOR A
INC E
DEC D
CP B
SBC A, 01H
NEG
CPL
RST 38H
DEFB 0AH
|
A ¬
(1820H)
B ¬
09H
C ¬
0AH
D ¬
03H
E ¬
04H
A ¬A +
B
A ¬
00H
A ¬A +
00H + cy
A ¬A
AND B
A ¬
(1821)
A ¬A
XOR A
E ¬ E + 1
D ¬ D – 1
A ¬ B, A TETAP
A ¬A –
02H
A ¬A –
01 – cy
A ¬negatif
AI
A ¬komplemen
A
KEMBALI
KE DISPLAY
|
8\ n
|
|
|
|
|
|
|
|
Ketikkanlah
program tersebutpada MPF-1 dancekisidarisetiap register yang
digunakandanterangkanmengenaimasing-masing register
flagnyayaitudenganmelihatisidari register flag setelahterjadioperasiaritmatik /
logikjikasetelahperintah STEP.
Program II : Program penjumlahan bilangan
heksadesimal satu byte.
Address
|
Op-Code
|
Mnemonic
|
Keterangan
|
1800
1802
1804
1805
1806
1807
1809
180B
180C
180F
1810
|
1E 05
16 06
7B
82
6F
3E 00
CE 00
67
22 10
18
FF
00 00
00
|
LD
E, 05H
LD
D, 06H
LD
A, E
ADD A, D
LD L, A
LD A, 00H
ADC A, 00H
LD H, A
LD (1810H), HL
RST 38H
|
E ¬ 05H
D ¬ 06H
A ¬ E
A ¬ A + D
L ¬ A
A ¬
00H
A ¬A +
00H + cy
H ¬ A
(1810H)
¬
HL
|
Ketikkan
program tersebutpada MPF-1 kemudiancekmasing-masing register yang digunakandan
register F setelahterjadioperasiaritmatik. Cekjugaisidari register HL
danisidari address 1810H (bandingkanisinya).
Ubah data pada
register E dengan BFH danisi register D dengan 62H seperti program di atas.
Program
III :
Address
|
Op-Code
|
Mnemonic
|
Keterangan
|
1800
1802
1804
1805
1806
1807
1808
180A
180D
|
1E 0A
16 06
AF
7B
9A
6F
26 00
22 0E 18
FF
|
LD E, 0AH
LD D, 06H
XOR A
LD A, E
SBC A,
D
LD L, A
LD H,
00H
LD
(180EH), HL
RST 38H
|
E ¬ 0AH
D ¬ 06H
A ¬ A XOR A
A ¬ E
A ¬A –
D – cy
L ¬ A
H ¬00H
(180EH)
¬
HL
KEMBALIKE
DISPLAY
|
Ketikkan program tersebut pada MPF-1 kemudian cek
masing-masing register yang digunakan dan register flagnya. Cek juga isi dari register HL dan isi dari
address 180EH. Ubah isi register E = 08H dan register D = 03H.
Program
IV :
Tugas :
Buatlah program penjumlahan 2 byte dengan ketentuan sebagai berikut :
-
data
1 berada pada address 1850H yaitu 1324H
-
data
2 berada pada address 1853H yaitu 2415H
Setelah mencoba dengan data tersebut maka ubah
datanya dengan yang lainnya !
Tidak ada komentar:
Posting Komentar