Proses merancang dan menerapkan
logika Kontrol komputer dengan mengidentifikasi operasi dasar yang diperlukan
untuk melaksanakan setiap mesin bahasa instruksi dan mewakili operasi ini
sebagai urutan petunjuk dalam memori khusus yang disebut kontrol toko. Metode
ini adalah sebuah alternatif untuk keras kabel sinyal kontrol yang diperlukan
untuk melaksanakan setiap instruksi bahasa mesin. Teknik meliputi bit kemudi,
pemadatan, sisa control, tunggal-tingkat pengkodean, dua tingkat pengkodean.
1. Struktur Register Mikroprosessor
Fungsi register digunakan untuk
menyimpan data, alamat, kode instruksi dan bit status berbagai operasi
mikroprosesor. Prinsip dari register – register pada berbagai mikroprosesor
adalah sama, namun memiliki perbedaan dalam struktur registernya.
1.1
Code Segment
Dalam komputasi, sebuah segmen
kode, juga dikenal sebagai segmen teks atau hanya sebagai teks, adalah bagian
dari sebuah file objek atau sesuai bagian dari ruang alamat virtual program
yang berisi instruksi dieksekusi. Istilah "segmen" berasal dari
segmen memori, yang merupakan pendekatan historis untuk manajemen memori yang
telah digantikan oleh paging. Ketika program disimpan dalam file objek, segmen
kode adalah bagian dari file ini; ketika loader menempatkan program ke dalam
memori sehingga dapat dieksekusi, berbagai daerah memori dialokasikan
(khususnya, sebagai halaman), sesuai dengan kedua segmen dalam file objek dan
segmen hanya diperlukan pada waktu berjalan. Misalnya, segmen kode dari file
objek dimuat ke segmen kode yang sesuai di memori.
1.2 Data
Segment
Dalam komputasi, segmen data
(sering dilambangkan DATA) adalah bagian dari sebuah file objek atau ruang
alamat yang sesuai virtual program yang berisi variabel statis diinisialisasi,
yaitu, variabel global dan variabel lokal statis. Ukuran segmen ini ditentukan
oleh ukuran nilai dalam kode sumber program, dan tidak berubah pada saat
dijalankan.
1.3
Stack Segment
Daerah tumpukan berisi program
tumpukan, struktur LIFO, biasanya terletak di bagian yang lebih tinggi dari
memori. A "stack pointer" daftar trek atas tumpukan; itu disesuaikan
setiap kali nilai yang "mendorong" ke stack. Set nilai mendorong
untuk satu fungsi panggilan yang disebut sebagai "tumpukan frame".
Sebuah stack frame terdiri minimal dari alamat pengirim. variabel otomatis juga
dialokasikan pada stack.
1.4 Extra
Segment
Merupakan register segment
tambahan yang digunakan pada operasi-operasi string. extra segment sebagaimana
halnya data segment juga dipergunakan sebagai penempatan data-data.
1.5
Flag Register
The FLAGS Register adalah status
register di mikroprosesor Intel x86 yang berisi keadaan saat prosesor. daftar
ini adalah 16 bit lebar. penerus, yang EFLAGS dan RFLAGS register, lebar,
masing-masing 32 bit dan 64 bit. Register yang lebih luas mempertahankan kompatibilitas
dengan pendahulu mereka yang lebih kecil.
2. Mode Pengalamatan (Addressing
Mode)
Pengalamatan data (addressing
mode) adalah perpindahan data dari lokasi asal ke lokasi tujuan. Lokasi asal
berupa register, lokasi memori atau data mentah (kode hexadesimal / bilangan).
Lokasi tujuan berupa register atau lokasi memori. Perintahnya memakai MOV.
2.1 Mode Data-Addressing
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
Merupakan penyalinan data antar
register (transfer register)
MOV reg1, reg2
Contoh:
MOV AX, BX ; isi BX disalin ke AX
MOV SI, DI ; isi DI disalin ke SI
2.1.2
Immediate Addressing
Merupakan penyalinan suatu data
ke register
MOV reg, data
Contoh:
MOV AH, 02h ;02h disalin ke AH
MOV DL,’A’ ; karakter A disalin
ke DL
MOV AX,’AB’ ;karakter AB disalin
ke AX
2.1.3
Register Indirect Addressing
Penyalinan data secara tidak
langsung dari lokasi alamat yang ditunjuk oleh BP, BX, DI atau SI ke suatu
register atau sebaliknya.
MOV reg, [reg]
MOV [reg], reg
MOV [reg], [reg]
Contoh:
MOV EAX, [BX] ;isi data di lokasi
memori [DSx10h+BX] ke register EAX
MOV [CX], AX ;isi data di AX
disalin ke lokasi memori [DSx10h +CX}
2.1.4
Base Plus Indeks Addressing
Merupakan penyalinan data dari
lokasi memori yang ditunjuk oleh BP atau BX ditambah isi index (SI atau DI) ke
register tujuan atau sebaliknya.
MOV reg, [base+index]
MOV [base+index], reg
Contoh:
MOV DX, [BX+SI]
MOV [BP+DI], AX
2.1.5
Relatif Register Addressing
Merupakan penyalinan data dari
lokasi memori yang ditunjuk oleh BP, BX atau SI dan DI ditambah displacement ke
register tujuan atau sebaliknya.
MOV reg, [base+disp]
MOV [base+disp], reg
Contoh:
MOV AX, [BX+10h]
MOV [BX+20h], CX
MOV [BP+30h], CH
MOV [DI+50h], DL
2.1.6
Relatif Plus Indeks Addressing
Merupakan penyalinan data dari
lokasi memori yang ditunjuk oleh BP atau BX ditambah isi index (SI/DI) +
displacement atau sebaliknya.
MOV reg, [base+index+disp]
MOV [base+index+disp], reg
Contoh:
MOV DX, [BX+SI+10h]
MOV [BP+DI+20h], AX
2.2 Mode Memori-Addressing
Dalam komputasi, alamat memori
adalah konsep data yang digunakan di berbagai tingkatan oleh perangkat lunak
dan perangkat keras untuk mengakses memori penyimpanan utama komputer. alamat
memori urutan panjang tetap digit konvensional ditampilkan dan dimanipulasi
sebagai unsigned integer. Bahasa seperti numerik semantik sendiri pada fitur
dari CPU (seperti instruksi pointer dan register alamat tambahan), serta pada
penggunaan memori seperti array didukung oleh berbagai bahasa pemrograman.
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
Addressing 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
Addressing Relatif
Adalah pengalamatan secara relatife terhadap alamat yang ada
di program counter.
Contoh : SJMP DEKAT
3. Instruksi Pemindahan Data
Operasi transfer data atau lebih
tepat disebut sebagai operasi copy data pada mikroprosesor Z-80 CPU sebagian
besar dijalankan menggunakan perintah LD singkatan dari LOAD. Z-80 CPU memiliki
134 perintah LOAD. Disamping itu ada 6 jenis perintah EXCHANGE yang disingkat dengan
EX, EXX. Mikroprosesor Z-80 CPU juga memiliki 12 jenis perintah PUSH dan POP
yang digunakan untuk transfer data dalam operasi stack.
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
XXCHG
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
Misal DI=5
LEA BX,TABLE[DI] ;load offset
address dari TABLE+5 ke BX.
3.9
LDS
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
Mengisi ES dan operand dengan
alamat 32-bit.
3.11
LAHF
Mentransfer delapan bit paling
kanan register flag ke dalam register AH.
3.12
SAHF
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
Instruksi MOVS menyimpan SI pada
lokasi memori yang ditangani oleh DI pada segmen tambahan.
Sumber:









