Konsep Mikroprogramming

07.46
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:

0 komentar:

Posting Komentar