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.
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
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
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
Posting Komentar