mikroprosesor 002
DESCRIPTION
Seputar ProcessorTRANSCRIPT
-
Riadi, S.Kom blogkreasididi.blogspot.com
Pertemuan II
MODEL PEMROGRAMAN MIKROPROSESOR
A. Model Pemrograman Model Pemrograman intel 8086 sampai pentim 4 disebut pemrograman invisible karena
registernya digunakan selama pemrograman aplikasi dan juga ditentukan oleh interuksi.
Dipandang sebagai pemrograman invisible karena register tersebut tidak dapat dialamati secara
langsung selama pemrograman aplikasi meski mungkin juga dapat digunakan, secara tidak
langsung, selama pemrograman sistem.
Gambar berikut menunjukkan struktur register yang terdapat pada mikriprosesor 8 bit, 16
bit dan 32 bit.
EAX AH AX AL Akumulator
EBX BH BX BL Indeks Basis
ECX CH CX CL Cacahan
EDX DH DX DL Data
ESP SP Stack Pointer
EBP BP Pointer Basis
EDI DI Indeks Tujuan
ESI SI Indeks Sumber
EIP IP Pointer Instruksi
EFLAGS FLAGS Flag
CS Kode
DS Data
ES Ekstra
SS Stack
FS
GS
8 Bit 16 Bit
Catatan 1. Bagian register yang diarsir
hanya terdapat pada mikroprosesor 80386 keatas
2. Register FS dan GS tidak mempunyai nama khusus
-
Riadi, S.Kom blogkreasididi.blogspot.com
Model pemrograman mempunyai register 8 bit, 16 bit, dan 32 Bit. Register 8 bit adalah
AH, AL, BH, BL, CH, CL, DH dan DL. Register 16 bit nya adalah AX, BX, CX, DX, SP, BP,
DI, SI, IP, FLAGS, CS, DS, ES, SS. FS, dan GS. Extended register 32 bit adalah EAX, EBX,
ECX, EDX, ESP, EBP, EDI, ESI, EIP, DAN EFLAG.
Beberapa register memiliki beberapa fungsi (general purpose) dan disebut dengan register
multiguna, sedangkan beberapa register lain mempunyai fungsi khusus.yang termasuk kedalam
register multiguna adalah EAX, EBX, ECX, EDX, EBP, EDI, dan ESI. Register ini menyimpan
data dengan berbagai ukuran (byte, word atau double word) dan untuk menyimpan berbagai
tujuan sesuai yang tertulis dalam program.
Register Multiguna
1. EAX (Akumulator) Merupakan register 32 bit (EAX), sepert halnya register 16 bit (AX) atau dua register 8
bit (AH dan AL). pengalamatan register 8 bit dan 16 bit akan mengubah bagian dari
register 32 bit saja tanpa mempengaruhi bit sisanya. Akumulator digunakan untuk
instruksi seperti perkalian, pembagian, dan beberpainstruksipenyesuaian. EAX juga
menyimpan alamat offset lokasi dalam sistem memori.
2. EBX (Indeks Basis) EBX dapat dialamati sebagai EBX, BX, BH dan B. register ini kadang menyimpan
alamat offset lokasi dalam sistem memoripada semua versi mikriprosesor. Pada
mikroprosesor 80386 keatas, EBX juga dapat mengalamati data memori.
3. ECX (Cacahan) ECX adalah register multiguna yang juga menyimpan cacahan (count) untuk berbagai
instruksi. Pada sebagian prosesor ECX juga menyimpan alamat offset dari data memori.
4. EDX ( Data) Adalah register Multiguna yang menyimpan hasil perkalian atau pembilang pada
pembagian. Pada prosesor tertuntu register ini juga dapat mengalamati memori data.
5. EBP (Pointer Basis) EBP menunjukkan lokasi memori pada semua versi mikroprosesor untuk transfer memori
data. Register ini dapat dialamati baik sebagai BP atau EBP.
6. EDI (Indeks Tujuan) EDI sering digunakan untuk mengalamati data string tujuan untuk instruksi string.
Register ini juga berfungsi sebagai register multiguna baik sebagai EDI atau DI
7. ESI (Indeks Asal) ESI digunakan untuk mengalamati data string asal untuk instruksi string. Juga sebagai
register multiguna yang dapat dialamati sebagai ESI atau SI.
Register Khusus
1. EIP (Pointer Instruksi) EIP digunakan untuk mengalamati instruksi selanjutnya yang ada pada suatu bagian
memori seperti yang didefinisikan pada segmen kode. Pointer instruksi, yang
menunjukkan instruksi selanjutnya dalam suatu program, digunakan oleh mikroprosesor
untuk mendapatkan urutan instruksi selanjutnya dalam program yang terdapat dalam
suatu segmen kode. Pointer instruksi dapat dimodifikasi dengan instruksi jump atau call.
2. ESP ( Stack Pointer )
-
Riadi, S.Kom blogkreasididi.blogspot.com
ESP mengalamati suatu area dalam memori yang disebut dengan stack. Memori stack
menyimpan data melalui pointer ini. Register ini disebut SP pada 16 Bit dan disebut ESP
pada 32 bit.
3. EFLAGS EFLAGS memberikan petunjuk mengenaikondisi mikroprosesor dan mengontrol
operasinya.
Daftar berikut menjelaskan setiap FLAG dan fungsinya pada mikroprosesor.
1. C (Carry) Carry menyimpan bi carry setelah proses penjumlahan atau borrow setelah pengurangan.
Flag carry juga menandakan kondisi error seperti yang ditentukan oleh beberapa
program.
2. P (Parity) Parity adalah logika 0 untuk paritas ganjildan 1 untuk paritas genap. Paritas merupakan
jumlah bit satu dalam sebuah angka yang yang dinyatakan dalam jumlah genap atau
ganjil.
3. A ( Auxiliary Carry) Auxiliary Carry menyimpan half carry setelah penjumlahan atau borrow setelah
pengurangan. Selain itu bit flag A tidak digunakan mikroprosesor untuk instruksi yang
lain.
4. Z ( Zero ) Flag zero menunjukkan bahwa hasil dari suatu operasi aritmatika atau logika adalah 0.
Jika Z = 1 hasilnya adalah 0 dan sebaliknya.
5. S ( Sign ) Flag sign menyimpan tanda aritmatikadari hasil setelah menjalankan instruksi aritmatika
atau logika. Jika S = 1 maka bit sign (bit paling kiri dari angka) adalah set atau begatif,
jika S = 0, bit sign adalah clear atau positif
6. T (Trap) Flag trap memungkinkan pembuatan jebakan melalui fitur on-chip debugging ( suatu
program didebug dengan tujuan untuk mencari error atau bug).
7. I (Interrupt) Flag interupsi mengontrol operasi dari pin masukan INTR (interupsi request). Jika I = 1
pin INTR diaktifkan dan jika I =0 maka pin INTR dinonaktifkan.
8. D (Direction) Flag direction memilih mode increment atau decrement untuk register DI dan Siselama
instruksi string. Jika D = 1 maka regiser tersebut otomatis diturunkan, dan jika D = 0
maka register tersebut otomatis akan dinaikkan.
9. O (Overflow) Overflow terjadi ketika angka bertanda dijumlahkan atau dikurangi. Overflow merupakan
tanda hasil melebihi kapasitas mesin.
10. IOPL (I/O Privilage Level) Digunakan untuk menentukan interupsi dari perangkat I/O jika bernilai 00 maka memiliki
tinggat yang tinggi dan jika bernilai 11 maka memiliki tingkat interupsi yang rendah.
11. NT ( Nested Task) Menandakan bahwa tugas saat ini disarangkan dalam tugas lain.
12. RF (Resume)
-
Riadi, S.Kom blogkreasididi.blogspot.com
Digunakan dengan debugging untuk mengatur permulaan eksekusi setelah instruksi
selanjunya.
13. VM (Virtual Mode) Sistem virtual mode memungkinkan pembagian beberapa memori DOS berukuran 1Mb
dalam sistem memori.
14. AC ( Aligment Check) Flag ini aktif ketika word atau doubleword dialamati dengan batas word atau
doubleword.
15. VIF (Virtual Interrupt Flag) Merupakan salinan dari flag interupsi yang terdapat mulai prosesor pentium.
16. VIP (Virtual Interrupt pending) Bit ini dibunakan untuk area multitasking untuk menyediakan informasi bagi sistem
operasi mengenai flag interupsi virtualdan interupsi yang tertunda. Terdapat mulai dari
prosesor pentium.
17. ID (identification) Menandakan bahwa mikroprosesor pentium keatas mendukung instruksi CPUID.
Instruksi ini melengkapi sistem dengan informasi mengenai mikroprosesor seperti versi
dan pabrik pembuatnya.
Register Segmen
Register tambahan yang disebut dengan register segmen, membangkitkan alamat
memoriketika dikombinasikan dengan register lainnya pada mikroprosesor. Terdapat 4 atau 6
register segmen tergantung pada jenis mikriprosesor.
1. CS (Code) Merupakan bagian memori yang menyimpan kode (program atau prosedur)yang
digunakan oleh mikroprosesor. Register ini mendefinisikan alamat awal dari bagian
memori yang menyimpan kode.
2. DS (Data) Merupakan bagian memori yang menyimpan sebagian besar data yang digunakan oleh
program
3. ES (Extra) Merupakan segmen data tambahan yang digunakan oleh beberapa instruksi string untuk
menyimpan data tujuan.
4. SS (Stack) Mendefinisikan area memori yang digunakan untuk stack. Masukan stack ditentukan uleh
segmen stack dan register stack pointer.
5. FS dan GS 6. Merupakan register tambahan untuk diakses oleh program.