104
c. Perintah Untuk Input Output Dengan Pengaturan Langsung
Perintah ini mengontrol lalu lintas bus data antara CPU dan piranti input output. Pada sebagian sistim mikroprosessor sering dilengkapi dengan banyak blok input
output dengan sebuah atau lebih register, yang melalui fungsi blok input output ini dipakai sebagai pelayanan penyangga data pada Register sementara atau
pengaturan informasi kontrol. Register pada piranti ini,yang dipakai sebagi penghubung sistim dengan dunia
luar peripheral disebut sebagai “port”, dan alamatnya disebut “alamat port”. Jumlah alamat yang dipakai oleh perintah input output ini hanya 8 bit dan dalam
pelaksanaannya diberikan melalui jalur penghantar A7 - A0. Dengan demikian dapat dibentuk 256 alamat port yang berbeda.
MNEMONIK : CPU
Register IO IN A, n
105
Register IO CPU
OUT n, A n : konstanta 8 bit
Format : IN A, n
OUT n, A
adr 1 1 0 1 1 0 1 1
1 1 0 1 0 0 1 1 adr + 1
Konstanta Konstanta
Operasi :
A, n Akku CPU diisi dengan isi register IO yang beralamat n
n, A Register IO yang beralamat n diisi oleh isi dari Akku CPU
Flag
Tidak terpengaruh
CONTOH : IN A,20H
0900 DB 0901 20
d. Perintah Input Output Dengan Pengalamatan Tidak Langsung Mnemonik :
CPU Register IO
IN r, C
Piranti IO CPU
OUT C, r
r = Register 8 bit A,B,C,D,E,H,L
106
C = Register C yang isinya diberikan sebagai penunjuk penghantar alamat A7 - A0
Format IN r, C
OUT C, r
adr 1 1 1 0 1 1 0 1 1 1 1 0 1 1 0 1
adr + 1 0 1
r 0 0 0
0 1 r
0 0 1
Operasi
Register CPU tujuan r diisi dengan isi dari Register C yang merupakan
pengalamatan dari port IO
Register C yang merupakan pengalamatan dari port IO diisi dengan isi dari
Register CPU r. Flag :
Pada perintah input IN Flag S = 1, bila bit tertinggi = 1
Flag Z = 1, bila data yang dibaca = 0 Flag P = 1, pada parity genap dari data yang di baca
1.2.3 Latihan 2
1. Mengisi Register B dengan D8H a. Mnemonik
: b. Bahasa Mesin
: 2. Memindahkan isi Register B ke Register H, bila isi Register B = D8H
a. Mnemonik :
b. Bahasa mesin :
3. Memindahkan isi register A ke lokasi Memori beralamat 0900H a. Mnemonik
: b. Bahasa mesin
:
107
4. Memindahkan isi lokasi Memori ber alamat 0904H ke Register A a. Mnemonik
: b. Bahasa mesin
: 5. Memindahkan isi Register B ke lokasi Memori yang alamatnya ditunjuk
oleh Register HL, bila isi Register HL = 0908H a. Mnemonik
: b. Bahasa mesin
: 6. Memindahkan isi lokasi Memori yang alamatnya ditunjuk oleh Register
HL ke register C, bila isi lokasi Memori beralamat 0907H = 09H a. Mnemonik
: b. Bahasa mesin
: 7. Memindahkan isi Register A ke Register Port IO yang alamatnya 00H
a. Mnemonik :
b. Bahasa mesin :
8. Memindahkan isi Register Port IO yang alamatnya 00H ke Register A a. Mnemonik
: b. Bahasa mesin
1.2.4 Jawaban 2 1. Mengisi Register B dengan D8H
a. Mnemonik : LD B,D8H
b. Bahasa Mesin : 06H D8H
2. Memindahkan isi Register B ke Register H, bila isi Register B = D8H a. Mnemonik
:LD H,B b. Bahasa mesin
: 60H 3. Memindahkan isi register A ke lokasi Memori beralamat 0900H
a. Mnemonik : LD 0900H, A
108
b. Bahasa mesin : 32H 00H 09H
4. Memindahkan isi lokasi Memori ber alamat 0904H ke Register A a. Mnemonik
: LD A,0904 b. Bahasa mesin
: 3AH 04H 09H 5. Memindahkan isi Register B ke lokasi Memori yang alamatnya ditunjuk
oleh Register HL, bila isi Register HL = 0908H a. Mnemonik
: LD B,HL b. Bahasa mesin
: 46H 6. Memindahkan isi lokasi Memori yang alamatnya ditunjuk oleh Register
HL ke register C, bila isi lokasi Memori beralamat 0907H = 09H a. Mnemonik
: LD HL, C b. Bahasa mesin
: 71H 7. Memindahkan isi Register A ke Register Port IO yang alamatnya 00H
a. Mnemonik : OUT 00, A
b. Bahasa mesin : D3H 00H
8. Memindahkan isi Register Port IO yang alamatnya 00H ke Register A a. Mnemonik
: LD A,00 b. Bahasa mesin
: 3EH 00H
3. INSTRUKSI UNTUK SISTEM KERJA PERINTAH FLAG.
Instruksi ini merupakan instruksi yang diaplikasikan untuk pelaksanaan instruksi lain dengan memanfaatkan kondisi atau status flag, untuk melakukan itu diper-
lukan cara untuk menentukan status dari flag tersebut. Penjelasan berikut tentang bagaimana mengisi Register Flag dan Akkumulator
Program Status Wor , memanfaatkan fungsi Flag zero, memanfaatkan fungsi Flag sign, manfaat fungsi Flag parity dan memanfaatkan fungsi Flag carry.
109
Flag adalah sebuah flip-flop di dalam blok penghitung dari CPU dan disebut sebagai Register Flag, keadaan Flag ini setelah pelaksanaan sebuah perintah
yang mempengaruhi Flag akan menghasilkan sifat dari hasil sebuah operasi. Pada Z-80, Flag di pasangkan dengan Akkumulator dan dikenal dengan program
status wort PSW , berikut struktur bit dari flag:
a. Flag Zero
Itu menunjukkan, apakah pada pelaksanaan terakhir ini operasi hasil pada semua bit adalah = 0.
Kondisi Flag Flag Zero
= 1, bila pada semua bit pada Register hasil = 0. Flag Zero
= 0, bila semua bit pada Register hasil 0.
Contoh : 0000
0000 + 1 0000
maka hasil yang didapat pada flag adalah Flag Zero = 1 Flag Carry = 1
110
b. Flag Carry
Kondisi ini menunjukkan apakah pada proses operasi sebuah bit carry dipindah kan dari bit tertinggi MSB pada Register hasil , itu dapat terjadi pada operasi :
o
Penjumlahan, bila hasil dari 8 bit atau 16 bit.
o
Pengurangan a - b, bila ba, hasil juga negatif.
o
Pergeseran, bila nilai 1 pada bit tertinggi atau terendah di geserkan ke
carry.
Kondisi Flag Flag Carry = 1, bila terjadi Carry.
Flag Carry = 0, bila tidak terjadi Carry.
Flag Carry dapat set melalui perintah SCF dan dibalik melalui perintah SCF.
c. Flag Sign