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 !
No comments:
Post a Comment