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