mikroprosesor 002

Upload: steven-

Post on 11-Oct-2015

19 views

Category:

Documents


0 download

DESCRIPTION

Seputar Processor

TRANSCRIPT

  • 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.