Senin, 21 November 2016

KONSEP MIKROPROGRAMMING



KONSEP MIKROPROGRAMMING
     
    1.   Struktur Register Mikroprosessor
Model programming 8086 sampai Pentium Pro menggunakan program visible karena registerregisternya digunakan langsung dalam programming dan dispesifikasikan dalam instruksi. Register lainnya dipertimbangkan menggunakan program invisible karena tidak dialamati secara langsung dalam program aplikasi tapi tetap dapat digunakan secara tidak langsung pada programming system.
      
      1.1.Code Segment (CS)
Berfungsi untuk menunjukkan alamat instruksi berikutnya.
      
      1.2.Data Segment (DS)
Berfungsi untuk menunjukkan alamat data operasi pemindahan data.
      
      1.3.Stack Segment (SS)
a. Menunjukan alamat stack memori pada operasi push dan pop
b. Menyimpan alamat instruksi berikutnya ketika memanggil suatu prosedur dan mengarahkan kembali eksekusi ke program utama.
      
      1.4.Extra Segment (ES)
Merupakan register segment tambahan yang digunakan pada operasi-operasi string.
      
      1.5.Flag Register
Flag Register berfungsi untuk menunjukkan status sesaat dari mikroprosesor. Bit-bit pada flag register akan mengalami perubahan, tergantung proses yang baru saja berlangsung. Bit-bit tersebut adalah sebagai berikut:
  • C (carry): mengindikasikan ada/tidaknya bawaan (carry) setelah operasi pengurangan. C = 1  berarti ada bawaan, C = 0 berarti tidak ada bawaan. Bit C berfungsi mengidentifikasi kesalahan (error) pada beberapa program dan prosedur (procedure).
  • P (parity): mengindikasikan jumlah bit dalam suatu data. P = 0 berarti paritasnya ganjil, P = 1 berarti paritasnya genap. Paritas dapat digunakan untuk pengecekan kesalahan pengiriman data.
  • A (auxiliary carry): mengindikasikan ada/tidaknya bawaan (carry) pada bit ke-3 dan ke-4 setelah operasi pengurangan. A=1 berarti ada bawaan, A=0 berarti tidak ada bawaan. Bit A ini relatif jarang digunakan dalam pemrograman.
 2. Mode Pengalamatan
  
 2.1.Mode pengalamatan 
       Merupakan metode penentuan alamat operand pada instruksi. Operand instruksi      diletakan pada   memori utama dan register CPU. Tujuan yang mempengaruhi arsitektur komputer ketika memilih mode pengalamatan:
  • Mengurangi panjang instruksi dengan mempunyai medan yang pendek untuk alamat.
  • Menyediakan bantuan yang tangguh kepada pemrogram untuk penanganan data kompleks seperti pengindeksan sebuah array, control loop, relokasi program dan sebagainya.

  2.1.1. Register addressing (Pengalamatan Register)
                Penjelasan :
·         Metode pengalamatan register mirip dengan mode pengalamatan langsung
·      Perbedaanya terletak pada field alamat yang mengacu pada register, bukan pada memori utama
·        Field yang mereferensi register memiliki panjang 3 atau 4 bit, sehingga dapat mereferensi 8 atau 16 register general purpose
                 Keuntungan :
·        Diperlukan field alamat berukuran kecil dalam instruksi dan tidak diperlukan referensi memori
·        Akses ke register lebih cepat daripada akses ke memori, sehingga proses eksekusi akan lebih cepat
                 Kerugian :
·         Ruang alamat menjadi terbatas



  2.1.2.  Immediate Addressing (Pengalamatan Segera)

                Adalah bentuk pengalamatan yang paling sederhana.
                Penjelasan :
·         Operand benar-benar ada dalam instruksi atau bagian dari intsruksi
·         Operand sama dengan field alamat
·         Umumnya bilangan akan disimpan dalam bentuk complement dua
·         Bit paling kiri sebagai bit tanda
·         Ketika operand dimuatkan ke dalam register data, bit tanda digeser ke kiri hingga maksimum word data
                Keuntungan :
·    Tidak adanya referensi memori selain dari instruksi yang diperlukan untuk memperoleh operand
·         Menghemat siklus instruksi sehingga proses keseluruhanakan akan cepat
                Kekurangan :
·         Ukuran bilangan dibatasi oleh ukuran field
                Contoh :
                 ADD 7 ; tambahkan 7 pada akumulator
         
  2.1.3. Register indirect addressing (Pengalamatan tak-langsung register)
                  Penjelasan :
·      Metode pengalamatan register tidak langsung mirip dengan mode pengalamatan tidak      langsung
·          Perbedaannya adalah field alamat mengacu pada alamat register
·          Letak operand berada pada memori yang dituju oleh isi register
·    Keuntungan dan keterbatasan pengalamatan register tidak langsung pada dasarnya sam dengan pengalamatan tidak langsung
·        Keterbatasan field alamat diatasi dengan pengaksesan memori yang tidak langsung sehingga alamat yang dapat direferensi makin banyak
·         Dalam satu siklus pengambilan dan penyimpanan, mode pengalamatan register tidak langsung hanya menggunakan satu referensi memori utama sehingga lebih cepat daripada mode pengalamatan tidak langsung
                 Contoh :

  2.1.4. Base Plus Indeks Addressing
               Yaitu mode pengalamatan yang digunakan untuk transfer byte/word antar register dan memori yang alamatnya ditunjukkan oleh jumlah register base dan index.
                 Bentuk1 : MOV [BX + SI],AX
                 Bentuk2 : MOV AX, [BX + SI]
  
  2.1.5. Relatif Register Addressing
               Yaitu mode pengalamatan untuk transfer byte/word antar register dan memori yang alamatnya ditunjukkan oleh isi suatu register jaraknya (displacement).
                 Bentuk : MOV [BX+4],AX
       
  2.1.6. Relatif Plus Indeks Addressing
               Merupakan mode pengalamatan yang digunakan untuk mentransfer byte/word antar register dan memori yang alamatnya ditunjukkan oleh suatu register base dan register index ditambah displacementnya.
                 Bentuk : MOV AX,[BX + DI + 4]

 2.2.     Mode Memori –Addressing

 2.2.1.  Addressing Langsung
Teknik pengalamatan langsung dilakukan dengan memberikan nilai ke suatu register secara langsung. Untuk melaksankan teknik pengalamatan langsung digunakan tanda #. Sebagai contoh instruksi :
MOV A,#01H ;Mengisi akumulator dengan 01H
Pengalamatan data langsung dari 0 sampai 127 akan mengakses RAM internal, sedangkan pengalamatan data dari 128 sampai 255 akan mengakses register perangkat keras. Sebagai contoh instruksi
Mov A,#010H ;isi akumulatur dengan 10H
MOV P3,A ;memindahkan isi akumulator ke Port 3

2.2.2.  Addresing Tidak Langsung
                 Teknik pengalamatan tidak langsung menunjuk ke sebuah register yang berisi lokasi alamat  memori yang akan digunakan dalam operasi. Lokasi yang sebenarnya tergantung pada isi register saat instruksi dijalankan. Untuk melaksanakan pengalamatan tidak langsung digunakan simbol @. Sebagai contoh instruksi:
MOV R0,#030H ;isi register R0 dengan 30H
Mov @R0,#0FFh ;isi alamat yang ditunjuk R0 dengan FFH

  2.2.3.  Relative addressing
                 Adalah pengalamatan secara relatife terhadap alamat yang ada di program counter.
                 Contoh : SJMP DEKAT
   
  3.   Intruksi Pemindahan Data 

  3.1. MOV
      MOV (MOVE)
      Perintah untuk mengisi, meindahkan, memperbaharui isi suatu register, variabel   ataupun suatu lokasi memory
             MOV [operand1], [operand2]
             Contoh : MOV AX,TABLE
             MOV ES:[BX],AX
             MOV DS,AX
             MOV BL,AL
             MOV CL,-30
             MOV DEST,25h
   
  3.2. PUSH
 Intruksi PUSH selalu mentransfer 2 byte data ke dalam stack.Sumber datanya bias  register flag,setiap register internal 16-bit,semua register segmen,atau semua 2 bytes memori data.
    
  3.3. POP
Instruksi POP melakukan  operasi inversi dari instruktur PUSH.POP memindahkan data dari stack dan menempatkannya ke dalam register sadaran,flag atau lokasi memori kita.

  3.4. XCGH
          Untuk mempertukarkan isi source operand dengan destination operand dalam ukuran byte  atau word Dapat mempertukarkan isi 2 memori dan isi suatu register dan lokasi memori
           Isi segmen register tdk dapat dipertukarkan (dengan instruksi XCHG)
           XCHG AX,BX ;pertukaran 2 word register
           XCHG AL,BH ;pertukaran 2 byte register
           XCHG WORD_LOC,DX ;pertukaran dengan lokasi memory
           XCHG DL,BYTE_LOC ;pertukaran dengan register


  3.5. XLAT
Untuk membaca/memeriksa nilai-nilai (byte) yang terdapat dalam suatu TABEL dan kemudian megkopi (load) ke dalam register AL (ukuran max TABEL=256 byte)
            XLAT source_table.Sebelum eksekusi XLAT  starting address daripada tabelnya harus
            Di simpan (load) ke BX dan index dari byte yg dimaksud ke dalam AL XLAT cocok     untuk konversi yang membutuhkan waktu perhitungan yang lama misal konversi ASCII display code dari hexadesimal digit.
            Contoh : Urutan instruksi utk memeriksa byte ke-10 dari tabel S_TAB :
            MOV AL,10 ;load harga index AL
            MOV BX,OFFSETS_TAB ;load starting add S_TAB ke BX
            XLAT S_TAB ;ambil harga dalam tabel ke AL

  3.6. IN
            Mentransfer data dari suatu perangakat I/O ke dalam register AL atau AX
            IN AL,pp        : 8-bit data from port pp are input to AL
            IN AX,pp        : 16-bit data from port pp are input to AX
            IN AL,DX      : 8-bit data from port DX are input to AL
            IN AX,DX      : 16-bit data from port DX are input to AX

  3.7. OUT

            Mentransfer data dari AL atau AX ke perangkat I/O.
            OUT pp,AL    : 8-bit data from AL are sent to port pp.
            OUT pp,AX    : 16-bit data from AX  are sent to port pp.
            OUT DX,AL  : 8-bit data from AL are sent to port DX
            OUT DX,AX  : 16-bit data from AX are sent to port DX

  3.8. LEA(Load Effective Address)

            Misal DI=5
LEA BX,TABLE[DI] ;load offset address dari TABLE+5 ke BX

  3.9. LDS(Load Pointer using DS)
Membaca 32 bit dari memori kemudian load 16 bit pertama ke register tertentu dan 16 bit  ke dua ke DSLDS register16,memory32.

  3.10. LES(Load Pointer using ES)
             Mengisi ES dan operand dengan alamat 32-bit

  3.11. LAHF
             Mentransfer delapan bit paling kanan register flag ke dalam register AH

  3.12. SHAF

             Mentransfer register AH ke dalam delapan bit paling kanan register flag

  3.13. LODS

               Intruksi LODS memasukkan AL dengan byte data dari lokasi memori yang ditangani oleh SI atau AX dengan kata data yang ditangani oleh SI.
               LODSB                    AL=[SI],byte transfer
               LODSW                   AX=[SI],word transfer
               LODS BYTE           AL=[SI],if BYTE is defined as a byte
               LODS WORD         AZ=[SI],if WORD is defined as aword

  3.14. STOS
               Instruksi STOS menyimpan AL atau AX pada lokasi memori yang ditangani oleh DI pada segmen tambahan


3.15. MOVS




Sumber:









 

Tidak ada komentar:

Posting Komentar