Have an account?
Posted by habibi on Selasa, 11 Mei 2010 in
Model Pemrograman 

Model pemrograman 8086 sampai Pentium II termasuk visibel program (terlihat program) karena register-registernya digunakan selama pemrograman aplikasi dan ditentukan oleh instruksi. Register lainnya merupakan invesibel program (tak terlihat program) karena register-register itu tidak mampu dialamati selama pemrograman aplikasi, namun dapat digunakan tak langsung selama pemrograman sistem. Hanya mikroprosesor 80286 ke atas yang berisi register-register invisible program yang digunakan untuk mengontrol dan mengoperasikan sistem memori terlindung.

Gambar 1 menguraikan model pemograman mikroprosesor 8086 sampai Pentium II, 8086, 8088, dan 80286 sebelumnya berisi arsitektur internal 16-bit, subset dari register yang diperlihatkan dalam gambar 2-1. mikroprosesor 80386, 80486, Pentium, Pentium Pro, dan Pentium II terdiri dari arsitektur internal 32-bit penuh. Arsitektur 8086 sampai 80286 sebelumnya sepenuhnya kompatibel ke atas dengan 80386 sampai Pentium II.  
Gambar 1. Model Pemograman Mikroprosesor


Register-register Multiguna:
Ø    EAX (akumulator)          
EAX dirujuk sebagai register 32-bit (EAX), sebagai  register 16-bit (AX), atau 2 register 8 bit (AH dan AL). akumulator digunakan untuk instruksi-instruksi perkalian, pembagian an beberapa penyesuaian. Dalam mikroprosesor 80386 ke atas, register EAX dapat juga  menyimpan alamat offset  sebuah lokasi dalam sistem memori.
Ø    EBX (base index)           
EBX dapat dialamati  sebagai  EBX, BX, BH, BL. Register  BX dapat  menyimpan  alamat offset sebuah lokasi memori dalam sistem memori semua versi mikroprosesor. Dalam mikroprosesor 80386 ke atas, EBX juga dapat mengalamati data memori.
Ø    ECX (count)
ECX   merupakan   register   serbaguna   yang    juga   dapat   digunakan   untuk    instruksiperhitungan. Dalam mikroprosesor 80386 ke atas, register ECX dapat juga menyimpan alamat offset data memori. Instruksi-instruksi yang menggunakan perhitungan merupakan instruksi string yang diulang (REP/REPE/REPNE); dan instruksi pergeseran, perputaran, dan instruksi LOOP/LOOPD. Instruksi pergeseran dan perputaran menggunakan CL, instruksi string berulang memakai CX, dan instruksi LOOP/LOOPD menggunakan CX atau ECX.
Ø    EDX (data)         
EDX  merupakan   register   serbaguna   yang   dapat   digunakan  untuk  menyimpan  hasil perkalian dan menyimpan sisa dalam pembagian. Dalam mikroprosesor 80386 ke atas, register ini juga mampu mengalamati data memori.
Ø    EBP (base pointer)
EBP  menunjukkan  sebuah   lokasi   memori   yang   dalam   semua   versi   mikroprosesor digunakan mentransfer data memori. Register ini dialamati sebagai EBP atau BP.
Ø    EDI (destination indeks)
EDI  sering  mengalamati  data  tujuan  string  untuk  beberapa  instruksi  string.  EDI  juga berfungsi sebagai register serbaguna 32-bit (EDI) atau (DI).
Ø    ESI
ESI digunakan sebagai ESI  dan sebagai SI. register indeks sumber sering mengalami data (source index) string. Seperti EDI, ESI juga berfungsi sebagai register serbaguna.  Sebagai register 16-bit dialamati sebagai SI; sebagai register 32-bit dialamati sebagai ESI.




Register Untuk Tujuan Khusus:
Yang termasuk di dalamnya : EIP, ESP, EFLAGS dan register-register segmen; CS, DS, ES, SS, FS, GS.
Ø  EIP
EIP mengalamai instruksi selanjutnya dalam sebuah bagian memori yang didefenisikan sebagai segmen kode. Register ini merupakan IP (16-bit) ketika mikroproseor dioperasikan dalam mode real namun menjadi EIP (32-bit) bila mikroprosesor 80386 ke atas dioperasikan dalam mode terlindung. Petunjuk instruksi, yang menunjukkan ke instruksi selanjutnya dalam satu program, digunakan oleh mikroproseseor untuk mendapatakan instruksi berurutan berikutnya dalam satu program yang lokasinya terletak di dalam segmen kode. Petunjuk instruksi dapat dimodifukasi dengan instruksi jump atau call.
Ø  ESP
ESP mengalamati sebuah lokasi memori yang disebut stack. Memori stack menyimpan data melalui petunjuk ini dan akan dijelaskan dengan instruksi yang mengalami data stack. Register disebut SP jika digunakan sebagai register 16-bit dan disebut register ESP jika digunakan sebagai register 32-bit.
Ø  EFLAGS
EFLAGS menunjukkan kondisi mikroprosesor dan mengontrol operasinya. Gambar 2-2 memperlihatkan register-register flag semua versi mikroprosesor. Register FLAG (16-bit) terdapat dalai mikroprosesor 8086-80286 dan register EFALG (32-bit) yeti extended FLAG terdapat dalam mikroprosesor 80386 ke atas 
Gambar 2. EFLAG dan FLAG count register


Lima bit flag yang paling kanan dan flag overflownya setelah beberapa instruksi aritmetika dan logik dijalankan. Flag tidak akan berubah dengan adanya transfer data atau operasi kontrol program . Beberapa flag juga digunakan untuk mengontrol beberpa fitur yang terdpat dalam mikroprosser. Selanjutnya dijelaskan secara singkat fungsi-fungsi setiap flag. Instruksi-instrusi diperkenalkan dalam bab-bab berikutnya, rincian tambahan tentang bit flag akan disediakan. Lima flag terkanan da flag overflow diubah oleh sebagian besar operasi eritmetika dan logik, sedangkan transfer data tidak mempengaruhinya.

Ø    C (carry)
Carry menyimpan carry setelah penambahan, atau borrow setelah pengurangan. Flag carry juga menunjukkan kondisi error seperti yang diperintahkan oleh program dan prosedur. Hal ini sangat benar bagi fungsi pnggil DOS yang akan diuraikan lebih rinci pada bab-bab selanjutnya dan pada lampiran A.
Ø    P (paritas)
Paritas merupakan 0 logika untuk paritas ganjil dan 1 logika untuk paritas genap. Paritas adalah jumlah angka satu dalam bilangan yang menyatakan genap atau gajil. Jika sebuah bilangan terdiri dari 3 bilangan biner bit satu, maka termasuk paritas ganjil. Jika terdiri dari nol bit satu, maka termasuk paritas genap. Flag paritas jarang ditemukan dalam aplikasi pemrograman modern dan telah diimplementasikan dalam mikroprossor Intel generasi pertama untuk mengecek data dalam komunikasi data. Dewasa ini pengecekan paritas tidak dilakukan oleh mikroprossor, tetapi oleh peralatan komunikasi data.
Ø    A (Auxiliary carry)
Carry tambahan (auxiliary carry) menampung carry (carry setengah) setengah penambah, atau borrow setengah pengurang antar posisi bit 3 dan 4. flag bit khusus ini diuji oleh instruksi DAA dan DAS untuk menyesuaikan nilai AL setelah penambahan atau pengurangan suatu BCD. Di luar itu bit flag A tidak digunakn oleh mikroprossor atau instruksi lain.
Ø    Z (zero)
Flag nol menunjukkan bahwa jumlah dari suatu operasi aritmetika atau logik adalah nol. Jika Z = 1, jumlahnya adalah nol, jika Z = 0 maka jumlahnya adalah bukan nol.
Ø    S (sign)
Flag tanda akan menampung tanda aritmetika dari hasil setelah instruksi aritmetika atau instruksi logik dieksekusi. Jika S = 1, tanda bit negatif, jika S = 0 tanda bit positif.
Ø    T (trap)
Flag tap memungkinkan trapping melalui suatu chip debugging. (Suatu program didebug untuk mencari error atau bug). Jika flag T enabel (=1), mikroprosor akan menghentikan alur program pada keadaan yang diindikasikan oleh register debug dan register kontrol. Jika flag T-nya nol logik, fitur trappingnya (debugging) adalah disabel. Program Code View dapat menggunakan fitur trap dan register debug untuk mendebug kesalahan software.
Ø    I (interrupt)
Flag interrupt ini mengendalikan operasi dari pin input INTR (interrupt request). Jika I = 1 pin INTRnya enable; jika I = 0 pin INTRnya disabel. Kondisi dari bit flag I dikrontrol oleh instruksi STI (set I flag) dan CLI (clear I flag).
Ø    D (direction)
Flag arah ini memilih dari salah satu mode penambahan atau pengurangan untuk register DI dan/atau register SI selama instruksi string. Jika D = 1, register secara otomatis akan dikurangi; jika D = 0, register secara otomatis akan ditambah. Flag D diset dengan instruksi STD (set direction) dan diclear dengan instruksi CLD (clear direction).
Ø    O (overflow)
Overflow terjadi ketika bilangan bertanda ditambah atau dikurang. Suatu overflow menunjukkan hasilnya melebihi kapasitas dari mesin. Contohnya jika 7FH (+127) ditambah, dengan menggunakan penambahan 8-bit, pada 01H (+1)  hasilnya  adalah 80H (-128). Hasil ini menunjukkan suatu kondisi overflow yang ditunjukkan oleh flag overflow untuk penambahan bertanda. Untuk operasi tak bertanda, flag overflow diabaikan.
Ø    IOPL
IOPL digunakan dalam operasi mode terlindung untuk memilih tingkatan operasi istimewa (I/O privilege level)     untuk piranti I/O. jika arus tingkatan istimewa lebih tinggi atau lebih menjamin dari pada IOPL, eksekusi I/O berjalan tanpa gangguan. Jika IOPL lebih rendah dari tingkatan istimewa sekarang, terjadi suatu interrupt yang, menyebabkan eksekusi tertunda. Perlu diperlihatkan bahwa IOPL 00 paling tinggi atau paling menjamin, sedangkan IOPL 11 adalah yan paling rendah atau paling tak terpercaya.
Ø    NT (nested task)
Flag NT menandakan bahwa flag yang sedang dilaksanakan bersarang dalam task yang lain dalam operasi mode terlindung. Flag ini diset ketika task di-nest oleh perangkat lunak.
Ø    RF (resume)
Flag resume digunakan bersama debugging untuk mengontrol kelanjutan eksekusi setelah instruksi berikutnya.
Ø    VM (virtual mode)
Bit flag Vm memilih operasi mode virtual dalam suatu sistem mode terlindung. Suatu sistem mode virtula memungkinkan partisi memori dari DOS yang panjanya 1M byte hadir bersamaan dalam sistem memori. Pada dasarnya, mode ini memampukan program sistem mengeksekusi lebih dari satu program DOS.
Ø    AC (alignment check)
Bit flag AC aktif jika suatu word atau doubleword dialamatkan pada batas suatu nonword atau nondoubleword. Hanya mikroprosor 80487SX pendampingnya untuk sinkronisasi.
Ø    VIF (virtual Pentium atau interrupr flag)
VIF adalah suatu salinan bit flag interrupt mode firtual untuk mikroprosesor Pentium  Pro.
Ø    VIP (virtual mikroprosesor interrup pending)
VIP menyediakan informasi tentang suatu interrupt mode virtual untuk Pentium-Pentium II. Ini digunakan dalam pemakaian multitasking  untuk  memberikan  falg virtual  interrupt dan informasi pending interrupt pada sistem operasi.
Ø    ID (identification)
Flag ID menunjukkan bahwa mikroprosesor Pentium-Pentium II mendukung instruksi CPUID. Instruksi CPUID memberikan informasi tentang mikroprosesor, sesuai dengan versi dan nomor seri dari pabriknya, pada sistem.
Ø    Register segmen.
Register tambahan, juga disebut register segmen, menghasilkan alamat-alamat memori saat dikombinasikan dengan register-register lainnya dalam mikroprosesor.  Bisa ada empat atau enam register segmen dalam bermacam versi mikroprosesor. Fungsi register segmen berbeda dalam mode real, bila dibandingkan dengan operasi mode terlindung, dari mikroprosesor. Berikut ini daftar masing-masing register segmen berkaitan dengan fungsinya dalam sistem.
Ø    CS (code)
Segmen kode adalah suatu bagian dari memori yang memuat kode (program dan prosedur) yang digunakan oleh mikroprosesor. Register CS mendefinisikan alamat awal dari bagian kode pemuatan memori. Pada operasi medo real, CS menetapkan awal dari suatu bagian memori 64K byte; dalam mode terlindung, CS memilih suatu pendeskripsi yang menggambarkan alamat awal dan panjang dari suatu bagian code pemuatan memori. Segmen kode panjangnya terbatas sampai 64K byte dalam 8086-80286 dan 4G byte dalam 80386 dan di atasnya ketika mikroprosesor ini beroperasi pada mode terlindung.
Ø    DS (data)
Segmen data adalah bagian dari memori yang berisis sebagian besar data yang digunakan oleh program. Data diakses dalam segmen data oleh alamat offset atau isi dari regiter lain yang mempunyai alamat offset. Seperti halnya segmen kode dan segmen yang lain panjangnya dibatasi sampai 64K byte dalam 8086-80286 dan 4G byte dalai mikroprosesor 80386 dan di atasnya.
Ø    ES (extra)
Segmen ekatra adalah suatu penambahan segmen data yang digunakan oleh beberapa instruksi string untuk menyimpan data tujuan.
Ø    SS (stack)
Segmen stack mendefinisikan area memori yang digunakan untuk stack.posisi dari arus masuk dalam segmen stack dibatasi oleh register penunjuk stack. Register BP juga mengalamati data dalam segmen stack.
Ø    FS dan GS
Segmen FS dan GS adalah register tambahan yang tersedia dalam mikroprosesor 80386, 80486, Pentium, dan Pentium Pro, yang memungkinkan dua segmen memori tambahan diakses oleh program-pprogram yang dijalankan.


0 Responses to “REGISTER”:

Posting Komentar