際際滷

際際滷Share a Scribd company logo
BAB 2
      Pemrograman Zilog Z80




                        Oleh :
                    Setiawardhana
Buku: Bahasa Assembly (Buku Komputer 3) oleh : Son Kuswadi


Politeknik Elektronika Negeri Surabaya
Pengantar
Question
 Mengapa sistem mikroprosessor yang
 sama dapat mengatur beragam sistem ?

Answer
 Adanya perangkat lunak, disamping
 perangkat keras penunjang lainnya
Pemrograman
 Definisi dan struktur
 Cara Assembly suatu program
 Flowchart program
 Listing Program
Kumpulan Instruksi
 Transfer Data
  Antar Internal memori
  Internal memori , register dan sebaliknya
Instruksi Input - Output
 Membaca dari port input
 Mengeluarkan data ke port output
Instruksi JUMP
 JUMP ke alamat yang dituju
 JUMP untuk inisialisasi
  Inisialisasi register
  Inisialisasi lokasi memori
  Pemindahan data
Pemrograman
Definisi
 Kumpulan instruksi yang ditulis dengan
 format tertentu, bila dieksekusi oleh
 mikroprosessor maka mikroprosessor
 tersebut akan melaksanakan fungsi tertentu
 dengan hasil yang diperkirakan
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
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
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
Object Code
Source Code   Object Code    Biner
LD A,B        78H            0111 1000

 Mikroprosessor membaca instruksi dalam
 bentuk biner di memori dan
 pengeksekusiannya
Cara Assembly Program
        Tulis program = mnemonic

   Pilih alamat awal program mnemonic

  Assemble untuk memperoleh object code

      Load Object code pada memori

              Run Program
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
Flowchart
 Sistematik dalam pembuatan program
 Flowchart
  Blok : Prosedur kasar
  Rinci: Prosedur detail
Flowchart
 Tipe langsung
 Tipe cabang
 Tipe loop
Tipe langsung (Straight Type)
              Start


            Proses 1


            Proses 2


             Proses 3
Tipe Cabang ( Branch Type)
                   Start


                  Proses 1

             No
                  Cabang
                        Yes
  Proses 4        Proses 2


                  Proses 3
Tipe Berulang (Loop Type)
           Start


          Setting



       Proses berulang

          Kondisi

         Proses lain
Listing Program
 Object Code dihasilkan setelah listing
 program di assemble
 Selain Object Code juga dihasilkan listing
 program
 Listing program = Obj code + Source Code
Instruksi Z80
 Transfer Data
 Aritmatika
 Logika
 Branch
 Stac, I/O dan kontrol mesin
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

                0 1 D D D S S S
Kode register
                    Contoh :    LD A, E
 Register A = 111
 Register B = 000   Object Code ? 7Bh =>
 Register C = 001
 Register D = 010     0 1 1 1 1 0 1 1
 Register E = 011               A          E
 Register H = 100          7               B
 Register L = 101
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)
Transfer Data
 Contoh (2b)
                  LD (HL),r
 Penjelasan
  Data register dipindah ke memori sistem yang
   alamatnya ditunjuk oleh register H dan L
 Contoh
                  LD C,3Ah
                  LD HL,3E80h
                  LD (HL),C
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
           destination register       byte pertama
               0 0 D D D 1 1 0


                       data           byte kedua
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
Transfer Data
 Instruksi 3-byte
                LD rp, data 16 bit
 dimana :
  Byte 1 : Opcode
  Byte 2 dan 3 : data 16 bit
Transfer Data
 Instruksi 3-byte
 Kode pasangan
 register :
 00 =B,C
 01 =D,E
 10 =H,L                pasangan register
 11 =SP                0 0 R P 0 0 0 1
 Detail operasinya :
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
Transfer Data
 Instruksi 3-byte
 Contoh
                LD (addr),A
 Penjelasan :
  Menyimpan reg A ke memori dengan alamat
   address
  Penyimpanan secara direct / langsung di
   memori
Transfer Data
 Contoh      LD (8000h),A
 Object Code 32h 0Ah 80h

 Contoh      LD A,(2436h)
 Object Code 3Ah 36h 24h
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
Transfer Data
 Contoh : H diisi 40h dan L diisi 3Ah
 Instruksi : LD (80FEh),HL
 Hasil     :
  Alamat 80FEh berisi 3Ah
  Alamat 80FFh berisi 40h
Transfer Data
 Contoh :
         LD B,6Ah
         LD C,7Dh
         LD A,4Eh
         LD (BC),A
 Hasil   :
  Alamat 6A7Dh berisi 4Eh
Transfer Data
 Menukar data
 Instruksi      : EX
 Contoh         : EX DE,HL
 Hasil          :
     D     H    dan E      L
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
Instruksi Input-Output
 INPUT      > IN
 OUTPUT     > OUT
Input
 Membaca dari port input
 Mnemonic     IN A,(addr)
 Contoh       IN A,(0FCh)
 Object Code DBh FCh
Output
 Mengirim data ke port output
 Mnemonic     OUT (addr),A
 Contoh       OUT (0FDh),A
 Object Code D3h FEh
Instruksi JUMP
 Instruksi Lompat ke Alamat Tujuan
 Instruksi     : JP addr
 Contoh        : JP 8043h
 Hasil         : Lompat ke alamat 8043h
 Object Code : C3h 43h 80h
Bab2
Bab2
Bab2
Bab2

More Related Content

Bab2

  • 1. BAB 2 Pemrograman Zilog Z80 Oleh : Setiawardhana Buku: Bahasa Assembly (Buku Komputer 3) oleh : Son Kuswadi Politeknik Elektronika Negeri Surabaya
  • 2. Pengantar Question Mengapa sistem mikroprosessor yang sama dapat mengatur beragam sistem ? Answer Adanya perangkat lunak, disamping perangkat keras penunjang lainnya
  • 3. Pemrograman Definisi dan struktur Cara Assembly suatu program Flowchart program Listing Program
  • 4. Kumpulan Instruksi Transfer Data Antar Internal memori Internal memori , register dan sebaliknya
  • 5. Instruksi Input - Output Membaca dari port input Mengeluarkan data ke port output
  • 6. Instruksi JUMP JUMP ke alamat yang dituju JUMP untuk inisialisasi Inisialisasi register Inisialisasi lokasi memori Pemindahan data
  • 7. Pemrograman Definisi Kumpulan instruksi yang ditulis dengan format tertentu, bila dieksekusi oleh mikroprosessor maka mikroprosessor tersebut akan melaksanakan fungsi tertentu dengan hasil yang diperkirakan
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. Object Code Source Code Object Code Biner LD A,B 78H 0111 1000 Mikroprosessor membaca instruksi dalam bentuk biner di memori dan pengeksekusiannya
  • 12. Cara Assembly Program Tulis program = mnemonic Pilih alamat awal program mnemonic Assemble untuk memperoleh object code Load Object code pada memori Run Program
  • 13. 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
  • 14. Flowchart Sistematik dalam pembuatan program Flowchart Blok : Prosedur kasar Rinci: Prosedur detail
  • 15. Flowchart Tipe langsung Tipe cabang Tipe loop
  • 16. Tipe langsung (Straight Type) Start Proses 1 Proses 2 Proses 3
  • 17. Tipe Cabang ( Branch Type) Start Proses 1 No Cabang Yes Proses 4 Proses 2 Proses 3
  • 18. Tipe Berulang (Loop Type) Start Setting Proses berulang Kondisi Proses lain
  • 19. Listing Program Object Code dihasilkan setelah listing program di assemble Selain Object Code juga dihasilkan listing program Listing program = Obj code + Source Code
  • 20. Instruksi Z80 Transfer Data Aritmatika Logika Branch Stac, I/O dan kontrol mesin
  • 21. 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 0 1 D D D S S S
  • 22. Kode register Contoh : LD A, E Register A = 111 Register B = 000 Object Code ? 7Bh => Register C = 001 Register D = 010 0 1 1 1 1 0 1 1 Register E = 011 A E Register H = 100 7 B Register L = 101
  • 23. 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)
  • 24. Transfer Data Contoh (2b) LD (HL),r Penjelasan Data register dipindah ke memori sistem yang alamatnya ditunjuk oleh register H dan L Contoh LD C,3Ah LD HL,3E80h LD (HL),C
  • 25. 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 destination register byte pertama 0 0 D D D 1 1 0 data byte kedua
  • 26. 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
  • 27. Transfer Data Instruksi 3-byte LD rp, data 16 bit dimana : Byte 1 : Opcode Byte 2 dan 3 : data 16 bit
  • 28. Transfer Data Instruksi 3-byte Kode pasangan register : 00 =B,C 01 =D,E 10 =H,L pasangan register 11 =SP 0 0 R P 0 0 0 1 Detail operasinya :
  • 29. 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
  • 30. Transfer Data Instruksi 3-byte Contoh LD (addr),A Penjelasan : Menyimpan reg A ke memori dengan alamat address Penyimpanan secara direct / langsung di memori
  • 31. Transfer Data Contoh LD (8000h),A Object Code 32h 0Ah 80h Contoh LD A,(2436h) Object Code 3Ah 36h 24h
  • 32. 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
  • 33. Transfer Data Contoh : H diisi 40h dan L diisi 3Ah Instruksi : LD (80FEh),HL Hasil : Alamat 80FEh berisi 3Ah Alamat 80FFh berisi 40h
  • 34. Transfer Data Contoh : LD B,6Ah LD C,7Dh LD A,4Eh LD (BC),A Hasil : Alamat 6A7Dh berisi 4Eh
  • 35. Transfer Data Menukar data Instruksi : EX Contoh : EX DE,HL Hasil : D H dan E L
  • 36. 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
  • 37. Instruksi Input-Output INPUT > IN OUTPUT > OUT
  • 38. Input Membaca dari port input Mnemonic IN A,(addr) Contoh IN A,(0FCh) Object Code DBh FCh
  • 39. Output Mengirim data ke port output Mnemonic OUT (addr),A Contoh OUT (0FDh),A Object Code D3h FEh
  • 40. Instruksi JUMP Instruksi Lompat ke Alamat Tujuan Instruksi : JP addr Contoh : JP 8043h Hasil : Lompat ke alamat 8043h Object Code : C3h 43h 80h