Bab2 libre
-
Upload
jojon-aimar -
Category
Education
-
view
116 -
download
1
Transcript of Bab2 libre
![Page 1: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/1.jpg)
BAB 2
Pemrograman Zilog Z80
Oleh :
SetiawardhanaBuku: Bahasa Assembly (Buku Komputer 3) oleh : Son Kuswadi
Politeknik Elektronika Negeri Surabaya
![Page 2: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/2.jpg)
Pengantar
Question
� Mengapa sistem mikroprosessor yang
sama dapat mengatur beragam sistem ?
Answer
� Adanya perangkat lunak, disamping
perangkat keras penunjang lainnya
![Page 3: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/3.jpg)
Pemrograman
� Definisi dan struktur
� Cara Assembly suatu program
� Flowchart program
� Listing Program
![Page 4: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/4.jpg)
Kumpulan Instruksi
� Transfer Data
– Antar Internal memori
– Internal memori , register dan sebaliknya
![Page 5: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/5.jpg)
Instruksi Input - Output
� Membaca dari port input
� Mengeluarkan data ke port output
![Page 6: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/6.jpg)
Instruksi JUMP
� JUMP ke alamat yang dituju
� JUMP untuk inisialisasi
– Inisialisasi register
– Inisialisasi lokasi memori
– Pemindahan data
![Page 7: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/7.jpg)
Pemrograman
Definisi
� Kumpulan instruksi yang ditulis dengan
format tertentu, bila dieksekusi oleh
mikroprosessor maka mikroprosessor
tersebut akan melaksanakan fungsi tertentu
dengan hasil yang diperkirakan
![Page 8: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/8.jpg)
Pemrograman
Struktur Instruksi Bahasa Assembly
� Operation Code (OpCode)
� Soure Operand (Sumber)
� Destination Operand (Tujuan)
Contoh : LD A , H
Opcode Source Destination
Instruksi : Pindahkan isi register 8 bit H ke
register 8 bit A, isi H = isi A
![Page 9: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/9.jpg)
Opcode
� Contoh :
– LD - LDI
– PUSH - LDIR
– POP - LPD
– CPIR - INC
– CPD - DAA
– ADD - IM
� Mnemonic : Opcode yang ditulis dalam bentuk khusus
� Opcode biasanya disertai Operand
– Source Operand
– Destination Operand
![Page 10: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/10.jpg)
Object Code
� Menulis program dalam assembly artinya
menggunakan mnemonic
� Mnemonic untuk pembuat program bukan
untuk mikroprosessor disebut Source Code
� Apa yang dibutuhkan mikroprosessor ?
� OBJECT CODE
![Page 11: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/11.jpg)
Object Code
Source Code Object Code Biner
LD A,B 78H 0111 1000
Mikroprosessor membaca instruksi dalam
bentuk biner di memori dan
pengeksekusiannya
![Page 12: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/12.jpg)
Cara Assembly Program
Tulis program = mnemonic
Pilih alamat awal program mnemonic
Assemble untuk memperoleh object code
Load Object code pada memori
Run Program
![Page 13: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/13.jpg)
Cara Modifikasi Assemble
Tulis mnemonic dengan neditor
Save di disket
Run assembler pada source program
Simpan Object code di disket
Download Object Code ke memori sistem
Run Object Code
![Page 14: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/14.jpg)
Flowchart
� Sistematik dalam pembuatan program
� Flowchart
– Blok : Prosedur kasar
– Rinci: Prosedur detail
![Page 15: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/15.jpg)
Flowchart
� Tipe langsung
� Tipe cabang
� Tipe loop
![Page 16: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/16.jpg)
Tipe langsung (Straight Type)
Proses 1
Proses 2
Proses 3
Start
![Page 17: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/17.jpg)
Tipe Cabang ( Branch Type)
Proses 1
Proses 2
Proses 3
Cabang
Proses 4
Yes
No
Start
![Page 18: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/18.jpg)
Tipe Berulang (Loop Type)
Proses lain
Kondisi
Start
Proses berulang
Setting
![Page 19: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/19.jpg)
Listing Program
� Object Code dihasilkan setelah listing
program di assemble
� Selain Object Code juga dihasilkan listing
program
� Listing program = Obj code + Source Code
![Page 20: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/20.jpg)
Instruksi Z80
� Transfer Data
� Aritmatika
� Logika
� Branch
� Stac, I/O dan kontrol mesin
![Page 21: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/21.jpg)
Transfer Data
� Internal register ke internal register (1)
� Memori sistem ke internal register (2)
� Contoh (1)
LD r1,r2
� Penjelasan
– Instruksi mentransfer data dari source operand (r2) ke destination operand (r1).
– Isi r2 tetap
– Isi r1 berubah menjadi isi r2
– Register yang dipakai : A,B,C,D,E,H dan L
� Object Code
SSSDDD10
![Page 22: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/22.jpg)
Kode register
� Register A = 111
� Register B = 000
� Register C = 001
� Register D = 010
� Register E = 011
� Register H = 100
� Register L = 101
11011110
Contoh : LD A, E
Object Code ? 7Bh =>
A E
7 B
![Page 23: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/23.jpg)
Transfer Data
� Contoh (2a)
LD A,(HL)
� Penjelasan– Data di memori dipindah ke internal register
– Alamat dari memori : pasanga register H & L
– H : alamat orde tinggi (A15-A8)
– L : alamat orde rendah(A7-A0)
� Contoh :– Alamat 8050h diisi 07h
– Pindahkan isinya ke register A
– Instruksi: LD HL,8050
LD A, (HL)
![Page 24: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/24.jpg)
Transfer Data
� Contoh (2b)
LD (HL),r
� Penjelasan
– Data register dipindah ke memori sistem yangalamatnya ditunjuk oleh register H dan L
� Contoh
LD C,3Ah
LD HL,3E80h
LD (HL),C
![Page 25: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/25.jpg)
Transfer Data
� Contoh (2c)
LD r,data
� Penjelasan
– Load immediate / reg. r dimuati segera dengan data 8 bit
– Operasi 2 byte
• Byte pertama : Opcode
• Byte kedua : 8 bit data
011DDD00
destination register byte pertama
data byte kedua
![Page 26: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/26.jpg)
Transfer Data
� Contoh (2d)
LD (HL),data
� Penjelasan– Load immediate / alamat memori yang ditunjuk register HL akan
dimuati segera dengan data 8 bit
– Operasi 2 byte• Byte pertama : Opcode
• Byte kedua : 8 bit data
Contoh (alamat 80FFh diisi data 0FEh)
LD H,80
LD L,0FF
LD (HL),0FEh
![Page 27: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/27.jpg)
Transfer Data
� Instruksi 3-byte
LD rp, data 16 bit
dimana :
– Byte 1 : Opcode
– Byte 2 dan 3 : data 16 bit
![Page 28: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/28.jpg)
Transfer Data
� Instruksi 3-byte
� Kode pasangan
register :
00 =B,C
01 =D,E
10 =H,L
11 =SP
� Detail operasinya :
1000PR00
pasangan register
![Page 29: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/29.jpg)
Transfer Data
� Instruksi 3-byte
� Contoh LD (HL),54FEh
� Byte 1: 00 10 0001 = 0010 0001 = 21
� Byte 2: FEh
� Byte 3: 54h
� Object codenya : 21h FEh 54h
![Page 30: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/30.jpg)
Transfer Data
� Instruksi 3-byte
� Contoh
LD (addr),A
� Penjelasan :
– Menyimpan reg A ke memori dengan alamataddress
– Penyimpanan secara direct / langsung di memori
![Page 31: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/31.jpg)
Transfer Data
� Contoh LD (8000h),A
� Object Code 32h 0Ah 80h
� Contoh LD A,(2436h)
� Object Code 3Ah 36h 24h
![Page 32: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/32.jpg)
Transfer Data
� Contoh : 8050h diisi 7Ah 8051 diisi 80h
� Instruksi : LD HL,(8050h)
� Hasil :
– Register L = 7Ah
– Register H = 80h
– Object code = 2Ah 50h 80h
![Page 33: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/33.jpg)
Transfer Data
� Contoh : H diisi 40h dan L diisi 3Ah
� Instruksi : LD (80FEh),HL
� Hasil :
– Alamat 80FEh berisi 3Ah
– Alamat 80FFh berisi 40h
![Page 34: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/34.jpg)
Transfer Data
� Contoh :
LD B,6Ah
LD C,7Dh
LD A,4Eh
LD (BC),A
� Hasil :
– Alamat 6A7Dh berisi 4Eh
![Page 35: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/35.jpg)
Transfer Data
� Menukar data
� Instruksi : EX
� Contoh : EX DE,HL
� Hasil :
D �� H dan E ��L
![Page 36: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/36.jpg)
Transfer Data
� Contoh :
LD HL,800Ah
LD DE,4326h
EX DE,HL
� Hasil :
– Semula : H=80h D=43h
L=0Ah E=26h
– Menjadi : H=43h D=80h
L=26h E=0Ah
![Page 37: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/37.jpg)
Instruksi Input-Output
� INPUT > IN
� OUTPUT > OUT
![Page 38: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/38.jpg)
Input
� Membaca dari port input
� Mnemonic IN A,(addr)
� Contoh IN A,(0FCh)
� Object Code DBh FCh
![Page 39: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/39.jpg)
Output
� Mengirim data ke port output
� Mnemonic OUT (addr),A
� Contoh OUT (0FDh),A
� Object Code D3h FEh
![Page 40: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/40.jpg)
Instruksi JUMP
� Instruksi “Lompat” ke “Alamat Tujuan”
� Instruksi : JP addr
� Contoh : JP 8043h
� Hasil : Lompat ke alamat 8043h
� Object Code : C3h 43h 80h
![Page 41: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/41.jpg)
![Page 42: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/42.jpg)
![Page 43: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/43.jpg)
![Page 44: Bab2 libre](https://reader031.fdocuments.net/reader031/viewer/2022021506/58a8e76a1a28aba6598b5655/html5/thumbnails/44.jpg)