MIKROPROSESSOR INTEL 8085
1.1. Pengenalan Mikroprosessor Intel 8085
Mikroprosesor INTEL 8085 merupakan prosesor 8-bit yang diproduksi oleh perusahaan INTEL yang berada di California USA. Prosesor 8085 ini merupakan prosesor sederhana yang memiliki kurang dari 80 instruksi.
Data yang terdapat dalam memori diproses oleh ALU (Arithmetic and Logical Unit), unit aritmatik dan logika. Biasanya, data berupa angka atau huruf yang dinotasikan dalam system biner.
Memori berfungsi untuk menyimpan data. Memory memiliki beberapa tipe :
1. RAM (Random Access Memory)
Memori ini dapat dibaca dan dapat diubah
2. ROM (Read Only Memory)
Memori ini hanya bisa membaca, data disimpan di dalam device memori selama proses pembuatan memorinya.
3. EPROM (Erasable Programmable Read Only Memory)
Sama seperti ROM tetapi pengguna dapat memprogramnya. Sehingga memori ini bisa dipakai berulang kali.
Berikut adalah susunan peta memory dalam Mikroprosessor INTEL 8085
Alamat
|
Daerah
|
$0000
“
“
$3FFF
|
EPROM 27128
PROGRAM MONITOR
|
$4000
“
“
$5FFF
|
EPROM 27128
Untuk melaksanakan PROGRAM MONITOR
|
$6000
“
“
$67FF
|
RAM 4464
DAERAH KERJA MONITOR
|
$6800
“
“
$6FFF
|
RAM 4464
DAERAH KERJA BASIC
|
$7000
“
“
$7FFF
|
RAM 4464
USER RAM
|
$8000
“
“
$9FFF
|
RAM 4464
USER RAM
|
$A000
“
“
$BFFF
|
RAM 4464
USER RAM
|
$C000
“
“
$DFFF
|
RAM 4464
USER RAM
|
$E000
“
“
$FFFF
|
RAM 4464
USER RAM
|
Tabel 1.1 Peta Memory INTEL 8085
Berdasarkan tabel peta memory diatas, maka daerah EPROM menempati alamat memory $0000-$5FFF, daerah sistem RAM menempati alamat yang dimulai dari alamat memory $6000-$6FFF, dan daerah user RAM menempati alamat memory dari $7000-$FFFF
1.2. Diagram Blok Mikroprosessor Intel 8085
Mikroprosesor 8085 memiliki jumlah Bus Alamat sebanyak 16-bit dengan demikian dapat mengakses memori secara langsung sebanyak 216 alamat memori atau sebanyak 65535 alamat, sering disebut sebagai 64K x 8Bit atau 64KByte memori secara langsung.
ALU dalam 8085 menerima masukan dari dua register yakni AKUMULATOR (REGISTER A) dan register sementara TMP (TEMPORARY). ALU melaksanakan penjumlahan, pengurangan dan operasi logika khusus pada pasangan byte masukan dalam register A dan TMP. Operasi logika ini antara lain adalah operasi AND, OR, NOT, dan XOR. Register flag juga dipengaruhi oleh operasi logika ini, dan setiap hasilnya akan disimpan di akumulator.
1.3. Intel 8085 Register
Register pada prosesor INTEL 8085 terdapat 8 regitster 8-bit, yaitu
· Register A (akumulator 8 bit)
· Register B
· Register C
· Register D
· Register E
· Register F (Flag Register)
· Register H
· Register L
Dari ke 8 register yang terdapat diatas, ada 6 register yang dapat membentuk 3 pasangan register yang memiliki kapasitas penyimpanan data 16 bit, yaitu
· Pasangan register BC
REG B
|
REG C
|
· Pasangan register DE
REG D
|
REG E
|
· Pasangan register HL (akumulator 16 bit)
REG H
|
REG L
|
Ketiga pasangan register tersebut digunakan untuk menunjukkan alamat dimana tempat data dalam unit memori yang akan diakses oleh prosesor yang berfungsi sebagai register pointer.
Prosesor INTEL 8085 juga memiliki 2 register 16 bit, yaitu:
· Register Program Counter (register PC)
· Register Stack Pointer (register SP)
ü Fungsi Program Counter
Register PC merupakan register 16 bit yang berfungsi untuk menunjukkan alamat tempat tersimpannya kode operasi yang akan dieksekusi oleh prosesor
ü Fungsi Stack Pointer
Register SP merupakan register 16 bit yang berfungsi untuk menunjukkan alamat tempat tersimpannya ‘puncak data’ dalam STACK.
Stack adalah bagian dari unit memori yang dipergunakan sebagai tempat penyimpanan data sementara, data yang disimpan ke dalam stack berasal dari register 16 bit. Stack tidak sama dengan stack pointer, karena stack pointer merupakan suatu register yang berada di dalam prosessor, sedangkan stack merupakan bagian dari unit memori yang berada di luar CPU.
Sistem stack dalam mikroprosesor ada 2 macam, yaitu:
1. First In First Out (FIFO)
Data yang pertama masuk ke stack, akan pertama keluar stack
2. Last In First Out (LIFO):
Data yang terakhir masuk ke stack, akan perrtama keluar stack
Pada umumnya mikroprosesor INTEL menggunakan sistem stack LIFO.
Contoh instruksi yang berkaitan dengan penyimpanan dan pengambilan data dari dan ke stack:
1. PUSH H
Menyimpan data 16-bit yang berasal dari pasangan register HL ke stack. Symbol operasi : (stack←[HL]).
2. PUSH B
Menyimpan data 16-bit yang berasal dari pasangan register BC ke stack. Symbol operasi : (stack←[BC]).
3. PUSH D
Menyimpan data 16-bit yang berasal dari pasangan register DE ke stack. Symbol operasi : (stack←[DE]).
4. PUSH PSW
Menyimpan data 16-bit yang berasal dari register A (8-bit) dan register F (8-bit) ke stack. Symbol operasi : (stack←[A]:[F]).
5. POP H
Mengambil data 16-bit dari puncak stack dan menyimpannya ke register HL. Symbol operasi : ([HL]←stack).
6. POP B
Mengambil data 16-bit dari puncak stack dan menyimpannya ke register BC. Symbol operasi : ([BC]←stack).
7. POP D
Mengambil data 16-bit dari puncak stack dan menyimpannya ke register DE. Symbol operasi : ([DE]←stack).
8. POP PSW
Mengambil data 16-bit dari puncak stack dan menyimpannya ke register A (8-bit) dan ke register F (8-bit). Symbol operasi : ([A]:[F]←stack).
ü Register Flag
Register F merupakan register status pada prosesor 8085, namun register F ini hanya memanfaatkan sebanyak 5 bit sebagai bit-bit status
B7 B6 B5 B4 B3 B2 B1 B0
S
|
Z
|
-
|
Ac
|
-
|
Pe
|
-
|
Cy
|
1. Bit S
Bit S merupakan Sign-bit, berada pada posisi SET atau berlogik 1 jika hasil logika prosesnya yang dilakukan oleh ALU menghasilkan nilai negatif, dan berada pada posisi RESET jika proses ALU bernilai bukan negatip atau lebih besar dari 0
2. Bit Z
Bit Zero, berada pada posisi SET (logik 1) jika hasil aritmatika ALU menghasilkan nilai nol, dan berada pada posisi RESET atau CLEAR jika proses ALU bernilai bukan nol (bernilai lebih kecil atau lebih besar dari nol)
3. Bit Ac
Bit Auxiliary carry , berada pada posisi SET (logik 1) jika hasil aritmatika ALU khususnya operasi penjumlahan bilangan/data BCD menghasilkan carry pada posisi bit B3, dan berada pada posisi RESET atau CLEAR jika proses ALU tidak menghasilkan carry pada posisi B3
4. Bit Pe
Bit even partity, berada pada posisi SET (logik 1) jika hasil aritmatika ALU menghasilkan nilai data 8 bit yang memiliki logik 1 genap, dan berada pada posisi RESET atau CLEAR jika proses ALU menghasilkan nilai data 8 bit yang memiliki logik 1 ganjil
5. Bit Cy
Bit carry, berada pada posisi SET (logik 1) jika hasil aritmatika ALU khususnya operasi penjumlahan dan pengurangan data biner menghasilkan carry pada posisi bit 7 (MSB), dan berada pada posisi RESET atau CLEAR jika proses ALU khususnya operasi penjumlahan dan pengurangan data biner tidak menghasilkan carry pada posisi bit 7
1.4. Trainer Midicom Sebagai Alat Praktikum
Midikom adalah sebuah trainer kit yang digunakan di lab mikroprosesor. Trainer kit mikroprosesor ini memiliki:
· PIO (Paralel Input Output) 0 dengan address 50 dan PIO 1 dengan address 40
· EPROM dengan alamat 0000-3FFF
· RAM 5 buah dengan alamat 6000-FFFF
· TIMER
· MEMORY DECODER
Pada Trainer midikom terdapat pula 8 buah led yang digunakan sebagai indikator output 8 bit atau 1 byte, 8 buah 7 segment, 8 saklar sebagai indikator input dan kit-kit lainnya.
Register yang terdapat pada trainer midicom adalah sebagai berikut:
· Register A (akumulator 8 bit)
· Register B
· Register C
· Register D
· Register E
· Register F (Flag Register)
· Register H
· Register L
· Register M
· Register F
· Register S
· Register P
· Register SP (16 bit)
1.4.1. Cara Menghidupkan dan Mengoperasikan Trainer MIDICOM
Untuk menghidupkan trainer MIDICOM pertama - tama periksa apakah kabel penghubung daya telah terpasang dengan benar. Kemudian ubah posisi saklar yang terletak di sudut kiri atas modul ke posisi ON. Lalu tekan space bar agar monitor siap menjalankan perintah.
Agar dapat menjalankan trainer Midikom, kita harus menggunakan bahasa mesin atau assembly untuk mengoperasikannya. Berikut adalah menu-menu yang terdapat dalam Midikom :
1. R : Read/Register
Digunakan untuk melihat atau mengganti isi dari register
ESC
|
R
|
register
|
CR
|
Contoh :
Register
|
A
|
B
|
C
|
D
|
E
|
H
|
L
|
F
|
SP
|
PC
|
Data
|
64
|
00
|
00
|
01
|
01
|
09
|
B3
|
54
|
60D0
|
ABCD C
|
Cara :
1) Melihat isi dari suatu register : ESC R A CR
2) Mengubah isi dari suatu register (data baru: 11)
ESC R A 11 CR
2. M : Memory
Digunakan untuk melihat data yang berada pada suatu lokasi memory baik RAM maupun EPROM
ESC
|
M
|
Alamat
|
CR
|
Contoh:
Mem.Address
|
1234
|
4567
|
6677
|
7243
|
7400
|
9999
|
FFFF
|
Data
|
D3
|
32
|
B5
|
B7
|
FF
|
33
|
A2
|
Cara : ESC M 1234 CR
Untuk mengubah data lokasi memory dapat dilakukan dengan cara, sebagai berikut:
ESC
|
M
|
Alamat Lama
|
CR
|
Alamat Baru
|
CR
|
Contoh:
Mem.Address
|
8205
|
8206
|
8207
|
8208
|
9328
|
9329
|
932A
|
Data Lama
|
75
|
75
|
75
|
75
|
75
|
75
|
75
|
Data Baru
|
42
|
A2
|
72
|
49
|
49
|
F3
|
CA
|
Cara : ESC M 8206 CR A2
3. L : List
Digunakan untuk melihat data dalam suatu “blok memory” dan hanya dapat mencakup 256 kata
ESC
|
L
|
Alamat awal
|
CR
|
Alamat akhir
|
CR
|
4. C : Copy
Digunakan untuk membuat duplikat data dari satu lokasi memori ke lokasi memori lain. Di sini kita harus menentukan alamat awal dan alamat akhir, serta alamat tujuan tempat data tersebut akan digandakan.
ESC
|
C
|
Alamat awal sumber
|
CR
|
Alamat akhir sumber
|
CR
|
Alamat akhir sumber
|
CR
|
Untuk mencheck dapat menggunakan instruksi LIST.
5. I : Insert
Digunakan untuk menyisipkan data diantara sekumpulan data. Kita harus menentukan alamat awal data yang akan digeser dan batas akhirnya. Sedangkan banyaknya penggeseran ditentukan dengan banyaknya kita menekan tombol [CR]. Kelemahan dari perintah ini adalah kesalahan saat program dibuat sehingga jika kita menyisipkan 3 data akan muncul 4 data dengan lambang 00.
ESC
|
I
|
Masukan Data
|
CR
|
Alamat akhir
|
CR
|
Insert Address
|
CR
|
Contoh:
8300
|
10
|
8301
|
11
|
8302
|
12
|
8303
|
13
|
8304
|
14
|
8305
|
15
|
8306
|
16
|
8307
|
17
|
8308
|
18
|
Data yang akan dimasukkan : 7C,7C,7E
Cara:ESC I 8302 CR 8308 CR 7C CR 7D CR
6. F : Fill
Digunakan untuk mengisi suatu blok memori dengan data yang sama, seperti perintah List, kita harus memberikan alamat awal dan alamat akhir yang datanya akan diganti serta data penggantinya.
Contoh : Ubah semua data menjadi 10
8300
|
10
|
8301
|
11
|
8302
|
12
|
8303
|
13
|
8304
|
14
|
8305
|
15
|
8306
|
16
|
8307
|
17
|
8308
|
18
|
Cara: ESC F 8300 CR 8308 CR 10 CR
7. G: Go
Digunakan untuk menjalankan perintah
ESC
|
G
|
alamat
|
CR
|
Contoh:
Alamat
|
Hex-Code
|
Mnemonic
|
A000
|
21 0070
|
LXI H,7000
|
A003
|
OE 00
|
MVI C,0
|
A005
|
71
|
MOV M,C
|
A006
|
0C
|
INR C
|
A007
|
2C
|
INR L
|
A008
|
70
|
MOV A,L
|
A009
|
FE 10
|
CPI 10
|
A00B
|
C2 05A0
|
JNZ A005
|
A00E
|
CF
|
RST 1
|
Cara: ESC G A000 CR
Ketika program telah dieksekusi atau dijalankan, maka pada layar monitor :
PC
|
A
|
BC
|
DE
|
HL
|
M
|
F
|
SZxAxPxC
|
SP <SP>
|
A00E
|
10
|
7910
|
FF01
|
7010
|
77
|
54
|
Z 0 P
|
6002 E366
|
8. T: Trace
Digunakan untuk menjalankan perintah satu persatu
ESC
|
T
|
alamat
|
CR
|
Ketika telah dijalankan maka, di layar monitor program akan memperlihatkan hasil eksekusi mnemonic hanya alamat itu sendiri saja. Untuk melihat hasil eksekusi lainya tekan CR secara terus menerus sampai alamat program selesai.
9. A: Assembler
Digunakan untuk mengubah mnemonik yang diberikan padanya ke kode mesin (menerejmahkan ke bahasa terjemahan kita). Midicom akan meminta alamat memori tempat menyimpan program setelah huruf A ditekan.
ESC
|
A
|
alamat
|
CR
|
10. D: Disambler
Digunakan untuk melihat kembali program yang telah kita buat sebelumnya.
ESC
|
D
|
alamat
|
CR
|
11. Contoh pengoperasian program pada MIDICOM :
1) Setelah menghidupkan layar midicom, tekan space bar agar keluar menu-menu yang kita inginkan
2) Ketik huruf ‘A’ untuk memulai program. AP = C000
3) ESC A C000 CR
4) Setelah itu masukan perintah dengan menggunakan bahasa mesin sesuai flowchart yang telah kita buat.
5) Perintah yang akan terlihat di layar monitor :
Alamat
|
Hex-Code
|
Mnemonic
|
C000
|
06 79
|
MVI B,79
|
C002
|
0E 33
|
MVI C,33
|
C004
|
16 FF
|
MVI D,FF
|
C006
|
78
|
MOV A,B
|
C007
|
81
|
ADD C
|
C008
|
67
|
MOV H,A
|
C009
|
7A
|
MOV A,D
|
C00A
|
90
|
SUB B
|
C00B
|
6F
|
MOV L,A
|
C00C
|
CF
|
RST 1
|
6) Untuk menjalankan program gunakan instruksi GO
ESC G C000 CR
Maka, layar monitor akan menampilkan
PC
|
A
|
BC
|
DE
|
HL
|
M
|
F
|
SZxAxPxC
|
SP <SP>
|
C00C
|
86
|
7933
|
FF01
|
AC86
|
FF
|
B0
|
s a
|
60D2 E366
|
No comments:
Post a Comment