Mikrokomputer



KONSEP MIKROPROGRAMMING

1.  Struktur Register Mikroprosessor
Segment register membentuk alamat memori untuk data. Pada operasi real mode suatu segment register akan berbeda dengan segment register pada operasi protected mode. Yang termasuk kedalam segment register antaralain :
A.      Code Segment (CS)
Berfungsi untuk menunjukkan alamat instruksi berikutnya.
B.      Data Segment (DS)
Berfungsi untuk menunjukkan alamat data operasi pemindahan data.
C.      Stack Segment (SS)
Menunjukan alamat stack memori pada operasi push dan pop
Menyimpan alamat instruksi berikutnya ketika memanggil suatu prosedur dan mengarahkan kembali eksekusi ke program utama.
D.     Extra Segment (ES)
Merupakan register segment tambahan yang digunakan pada operasi-operasi string.
E.      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.

2.    Mode Pengalamatan
Mode pengalamatan merupakan metode penentuan alamat operand pada instruksi. Operand instruksi diletakan pada memori utama dan register CPU. Tujuan yang mempengaruhi arsitektur computer 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.

Mode data Addressing
a)    Register addressing (Pengalamatan Register)
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 dari pada akses kememori, sehingga proses eksekusi akan lebih cepat
Kerugian :
·         Ruang alamat menjadi terbatas



b)      Immediate Addressing (PengalamatanSegera)
Adalah bentuk pengalamatan yang paling sederhana. 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 kedalam register data, bit tanda digeser kekiri hingga maksimum word data.
Keuntungan :
·         Tidak adanya referensi memori selain dari instruksi yang diperlukan untuk memperoleh operand
·         Menghemat siklus instruksi sehingga proses keseluruhan akan cepat
Kekurangan :
·         Ukuranbilangandibatasiolehukuran field
Contoh : ADD 7 ;tambahkan 7 padaakumulator

c)      Register indirect addressing (Pengalamatan tak-langsung register)
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 sama dengan pengalamatan tidak langsung, Keterbatasan field alamat diatasi dengan pengaksesanmemori yang tidak langsung sehinggaalamat yang dapat direferensi makin banyak, Dalam satu siklus pengambilan danpenyimpanan, mode pengalamatan register tidak langsung hanya menggunakan satureferensi memori utama sehinggalebih cepat daripada mode pengalamat anti langsung Contoh :


d)      Base PlusIndeks Addressing
Yaitu mode pengalamatan yang digunakan untuk transfer byte/word antar register dan memori yang alamat nya ditunjukkan oleh jumlah register base dan index.
Bentuk1 : MOV [BX + SI],AX
Bentuk2 : MOV AX, [BX + SI]

e)      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

f)       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]
Mode Memori –Addressing
g)      Addressing Langsung
Teknik pengalamatan langsung dilakukan dengan memberikan nilai kesuatu register secara langsung. Untuk melaksankan teknik pengalamatan langsung digunakan tanda #.Sebagaicontohinstruksi :
MOV A,#01H ;Mengisiakumulatordengan 01H
Pengalamatan data langsungdari 0 sampai 127 akan mengakses RAM internal, sedangkan pengalamatan data dari 128 sampai 255 akan mengakses register perangkatkeras. Sebagaicontohinstruksi
Mov A,#010H ;isiakumulaturdengan 10H
MOV P3,A ;memindahkanisiakumulatorke Port 3

h)       Addresing Tidak Langsung           
Teknik pengalamatan tidak langsung menunjuk kesebuah register yang berisilokasi alamat memori yang akan digunakan dalam operasi. Lokasi yang sebenarnya tergantung padaisi register saat instruksi dijalankan. Untuk melaksanakan pengalamatan tidak langsung digunakan simbol @.Sebagaicontohinstruksi:
MOV R0,#030H ;isi register R0 dengan 30H
Mov @R0,#0FFh ;isialamat yang ditunjuk R0 dengan FFH

i)        Relative addressing
Adalah pengalamatan secara relative teterhadap alamat yang ada di program counter. Contoh : SJMP DEKAT

3.    Intruksi Pemindahan Data
a)    MOV (MOVE)
Perintah untuk mengisi, meindahkan, memperbaharui isi suatu register, variable ataupun suatulokasi memory
MOV [operand1], [operand2]
Contoh : MOV AX,TABLE
MOV ES:[BX],AX
MOV DS,AX
MOV BL,AL
MOV CL,-30
MOV DEST,25h

b)     PUSH
Intruksi PUSH selal uCmentransfer 2 byte data kedalam stack.Sumberdatanyabias  register flag ,setiap register internal 16-bit,semua register segmen,atausemua 2 bytes memori data.


c)      POP
Instruksi POP melakukan operasi inverse dari instruktur PUSH. POP memindahkan data dari stack dan menempatkannya kedalam register sadaran, flag atau lokasi memorikita.

d)     XCGH
Untuk mempertukarkan isi source operand dengan destination operand dalam ukuran byte atau wordDapat mempertukarkanisi 2 memoridanisisuatu register danlokasimemori
Isi segmen register tdkdapatdipertukarkan (denganinstruksi XCHG)
XCHG AX,BX ;pertukaran 2 word register
XCHG AL,BH ;pertukaran 2 byte register
XCHG WORD_LOC,DX ;pertukarandenganlokasi memory
XCHG DL,BYTE_LOC ;pertukarandengan register

e)      XLAT
Untuk membaca/memeriksa nilai-nilai (byte) yang terdapat dalam suatu TABEL dan kemudian megkopi (load) kedalam register AL(ukuran max TABEL=256 byte)
XLAT source_table. Sebelum eksekusi XLAT  starting address dari pada tabel nyaharus Disimpan (load) ke BX dan index dari byte yg dimaksud kedalam ALXLAT cocok untuk konversi yang membutuhkan waktu perhitungan yang lama misalkonversi ASCII display code dari hexadesimal digit.
Contoh :
Urutanin struksi untuk memeriksa byte ke-10 daritabel S_TAB :
MOV AL,10 ;load harga index AL
MOV BX,OFFSETS_TAB ;load starting add S_TAB ke BX
XLAT S_TAB ;ambilhargadalamtabelke AL

f)       IN
Mentransfer data darisuatuperangakat I/O kedalam 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

g)      OUT
Mentransfer data dari AL atau AX keperangkat 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

j)        LEA(Load Effective Address)
Misal DI=5
LEA BX,TABLE[DI] ;load offset address dari TABLE+5 ke BX

k)      LDS(Load Pointer using DS)
Membaca 32 bit dari memori kemudian load 16 bit pertama keregister tertentu dan 16 bit keduake DSLDS register16,memory32.

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

m)   LAHF
Mentransfer delapan bit paling kanan register flag kedalam register AH

n)      SHAF
Mentransfer register AH kedalamdelapan bit paling kanan register flag

o)      LODS
Intruksi LODS memasukkan AL dengan byte data dari lokasi memori yang ditangani oleh SI atau AX dengan kata data yang ditanganioleh 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

p)      STOS
               Instruksi STOS menyimpan AL atau AX padalokasimemori yang ditanganioleh DI padasegmentambahan

                


q)      MOVS


 



Sumber:









Komentar

Postingan populer dari blog ini

Spesifikasi Perangkat Keras Pada Mikroprosesor 8086 dan 8088

Deskripsi Rangkaian Jemuran Otomatis

Analisis Tugas