Procesor 8086/8088 mempunyai 14 register yang masing-masing 16 bit dan 9 flag. Untuk menggambarkannya, register dibagi menjadi 4 set, setiap 3 set berisi 4 register. Register ke 13 dinamakan INTRUCTION POINTER (IP), tidak langsung menempatkan ke programmer dan oleh karena itu men-set dengan sendirinya.
Tiga set yang menyediakan tempat register adalah GENERAL, REGISTER, POINTER dan INDEX REGISTER, dan SEGMENT REGISTER. General register digunakan pertama kali untuk menampung operand operasi aritmatika dan logika. Pointer dan index register digunakan sebagai tempat alamat offset tanpa segment. Segment register digunakan untuk merinci permulaan alamat segment.
1. GENERAL PURPOSE REGISTER
General register 8086/8088 adalah register 16 bit, terdiri dari AX, BX, CX, dan DX. Sebagai pilihan, bagian tertinggi (AH, BH, CH, dan DH yang masing-masing 8 bit) atau bagian terendah (AL, BL, CL, dan DL yang masing-masing 8 bit) dari setiap register dapat dialamatkan tersendiri untuk operasi byte.
1. Akumulator
atau register AX berfungsi sebagai akumulator dan berhubungan dengan jenis-jenis operasi khusus seperti Aritmatika, In, Out, Shift, Logik, rotate dan operasi desimal berkode biner
2. Base register BX
dapat dipakai sebagai register base untuk mereferensikan alamat memori. Register ini dipisahkan menjad BH dan BL yang masing 8 bit. Operasi yang dapat dilakukan adalah route, aritmatik, shift dan logic.
3. Counter register CX
dipakai sebagai pencacah implisit dengan intruksi tertentu, miaslnya terhadap perintah LOOP dan operasi string. Cacahan naik bila direction flag 0 dan cacahan turun jika diection flag adalah Register CX dipishkan atas dua bagian yaitu CH dan CL yang masin-masing 8 bit.
4. Data register DX
dipakai untuk menyimpan alamat port I/O selama operasi input dan ouput dan tertentu, baik alamat port 8 bit maupun alamat port 16 bit. Digunakan juga dalam operasi-operasi perkalian untuk menyimpan sebagian dari hasil kali 32 bit atau dalam operasi pembagian untuk menyimpan suatu nilai sisa. Register ini dipisahkan menjadi DH dan DL masing-masing 8 bit
2. POINTER DAN INDEX REGISTER
Register ini menagani 16 bit yang biasnya mengakses memori operand. Register ini terdiri dari SP, BP, SI dan DL. Register BP dan SP digunakan untuk menunjuk ke stack.
1. Register SP secara
nyata digunakan untuk operasi stack seperti menyimpan alamat return sewaktu memanggil subroutine. SP merupakan register yang secara implisit digunakan oleh intruksi PUSH dan POP yang menyimpan dan mendapatkan kembali data dari stack.
2. Register BP
digunakan untuk penunjuk base dalam stack yang disediakan sebagai daerah penyimpanan data. BP digunakan juga dalam komunikasi dengan bahasa computer seperti bahasa C dengan Asembler.
3. Register SI dan
register DI digunakan untuk menyimpan nilai-nilai offset dalam segmen data memori pada saat bersangkutan. Kapasitas penuh daripada register ini akan menjadi jelas pada bahasan modus pengalamatan.
4. Register IP
merupakan register pasangan CS yang merupakan register utama untuk menunjukan baris perintah program. Pada saat program dijalankan, IP akan langsung menunjuk pada awal program. Pada saat pertama program dijalankan, IP akan lansung meunjuk pada awal program. Code segment dan Instructio Pointer berfungsi sebagai program counter dan ditulis dengan format CS : IP. Pada umumnya semua kode bahasa mesin ditaruh di Code Segment, semua data ditaruh pada Data Segment sedangkan operasi PUSH dan POP disediakan tempat di Stack Segment.
3. REGISTER SEGMENT
Register in terdiri dari 16 bit, yaitu : CS (Code Segment), DS (Data Segment), SS (Stack Segment) dan ES (Extra Segment). Suatu instruksi spesifik offset ke dalam segment dan segment register merinci 4 segment. Kita bias menggnakan yang mana saja untuk kita pilih. Hal ini tergantung pada bagaimana offset digunakan. Suatu offset mungkin merinci instruksi berikutnya dilaksanakan atau mungkin merinci suatu operand untuk suatu instruksi.
1. Register CS,
digunakan untuk mencatat segment dari kode rogram atau instruksi.
2. Register DS,
digunakan untuk menyimpan alamat dari segment letak data.
3. Register SS untuk.
menyimpan alamat segment memori yang dipergunakan menjadi stack.
4. Register ES.
digunakan untuk menyimpan alamat segment tambahan, misalnya alamta display, alamat sistem operasi dan sebagainya yang diinginkan oleh pemrogram.
4. FLAG REGISTER
8088/8086 mempunyai status flag 1 bit dan 3 kontrol flag yang dikonfigurasikan di dalam register 16 bit. Byte terendah dari flag adalah sebuah copy daripada register flag 8080 yang diakomodasikan ke 8086/8088. Flag ini digunakan ke record prosesor informasi status (status flag) atau ke control flag. Flag status umumnya disusun sebuah pengeksekusian aritmatika atau instruksi logika ke bayangan yang pasti pada saat operasi.
Berikut ini adalah jenis-jenis flag yang ada, yaitu :
Status flag yang mencopy dari 8080 menjadi 8088 adalah
1. CF (Cary Flag),
dimana sebuah cary out atau sebuah borrow, jika hasilnya adalah bit tertinggi (nilai 1)
2. FF (Parity Flag),
dimana menset (nilai 1) jika instruksi menghasilkan sebuah angka genap (even parity).
3. AF (Auxiliary Cary Flag),
digunakan oleh instuksi pengaturan desimal.
4. ZF (Zero Flag),
dimana menset (nilai 1) jika hasil intruksi adalah 0.
5. SF (Sign Flag),
dimana menset (nilai 1) jika hasilnya adalah negatif dan bernilai 0 jika positif.
Status flag yang ditambahkan pada 8088 adalah.
6. OF (Overflow Flag),
menunjukan sebuah operasi secara tidak benar yaitu merubah hasil daripada tanda bit. Contoh : menambah 2 angka positif dengan hasilnya negatif , Missal : +127 (7F hex) + 2 (02 hex) = -127 (81 hex) dan terjadi overflow untuk operasi aritmatika tersebut.
7. IF (interuft-enable Flag),
dimana jika diset (nilai 1) dapat melakukan interupsi dan sebliknya bila bernilai 0, maka interupsi tidak dapat dilakukan.
8. DF (Direction Flag),
di pergunakan untuk mengontrol arah daripada operasi string. Jika DF bernilai 1 maka register SI dan DI nilainya akan menurun (decrement). Sedang bila bernilai 0 maka register SI dan DI akan meningkat (increment). Pada program assembler, register ini digunakan untuk instruksi-instruksi MOVS, MOVSB, MOVSW, CMPS, CMPSB, dan CMPSW.
9. TF (Trap Flag),
dimana ditempatkan dalam single step mode untuk keperluan debug.
--- prof ---
0 komentar