Minggu, 07 Desember 2014

Operasi Aritmatika



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