Mata Kuliah : Bahasa Rakitan Materi ke-3 Struktur Register
REGISTER Register adalah sebagian kecil memory komputer yang dipakai i untuk tempatt penampungan dt data. Data yang terdapat dalam register dapat diproses dalam berbagai operasi dengan melihat berapa besar kemampuan register tersebut (8 atau 16 bit). Mikroprosesor 8088 adalah mikroprosesor 16 bit dengan saluran data 8 bit yang digunakan secara multipleks dengan saluran alamat dan berorientasi pada register. 2
Penggolongan Register Mikroprosesor 8088 General Purpose Register Segment Register Pointer Register Index Register Flag Register 3
General Purpose Register + A X ++ B X ++ C X + ++ D X + +------+-----++------+-----++------+-----++------+------+ AH AL BH BL CH CL DH DL +------+-----++------+-----++------+-----++------+------+ a. Accumulator 16 bit (AX) Register yang berhubungan dengan operasi aritmatika, logika, shift dan rotate b. Base Register 16 bit (BX) Register untuk pengalamatan berbasis, mereferensikam alamat memori. c. Counter Register (CX) Sb Sebagai counter register terhadap hd instruksi i LOOP. Cacahan naik jika direction flag 0 dan cacahan turun jika direction flag 1. d. Data Register (DX) Sebagai pencatat alamat port 8 bit dan 16 bit dan operasi lintas data 4
Segment Register a. Code Segmen Register (CS) Mencatat alamat segmen memori tempat kode operasi suatu program b. Data Segmen Register (DS) Mencatat alamat memori tempat menyimpan data yang digunakan c. Stack Segmen Register (SS) Mencatat alamat segmen yang digunakan menjadi stack d. Extra Segmen Register (ES) Mencatat alamat segmen memori bagi data yang terletak di CS, DS dan SS 5
Pointer dan Indeks Register a. Stack Pointer Register(SP) Mencatat alamat stack, memori yang dikhususkan untuk menyimpan isi register pada instruksi PUSH dan POP b. Base Pointer Register(BP) Menyimpan alamat data yang disimpan di stack jika data tersebut akan di kerjakan c. Indeks Register Source Indeks(SI) dan Destination Indeks(DI) menyimpan nilai-nilai offset dalam segmen data memori d. Instruction Pointer Register (IP) Register utama yang menunjukkan baris perintah program 6
Flag Register a. Tanda akibat operasi aritmatika dan logika Carry flag Jika ada carry atau borrow CF = 1, jk tdk ada CF = 0 Parity flag Jumlah bit 1, genap(parity even), PF = 1 Jumlah bit 1, ganjil(parity odd), PF = 0 Auxiliary flag Instruksi pengaturan desimal dengan carry, AF = 1 Instruksi pengaturan desimal tanpa carry, AF = 0 Zero Flag Jika hasil operasi = 0 maka ZF = 1 Jika hasil operasi tidak sama dgn 0 maka ZF = 0 Sign flag Bit tanda hasil ops. aritmatika positif, SF = 0 Bit tanda hasil ops. Aritmatika negatif, SF = 1 7
b. Tanda yg berkaitan khusus dg kerja prosesor Trap flag, jalannya program normal TF = 0. Program dijalankan per instruksi TF = 1 Interrupt flag, di-set jk melakkan interupsi Direction flag,di-set jk pd operasi string reg SI & DI melakukan increment, jk decrement DF = 0 Overflow flag, OF = 1 jk hasil dari suatu operasi tidak benar 8
Register flag16 bit dengan komposisi sebagai berikut : X X X X OF DF IF TF SF ZF X AF X PF X CF FLAG NILAI BIT 1 NILAI BIT 0 CF CARRY FLAG CARRY NOT CARRY PF PARITY FLAG EVEN PARITY ODD PARITY AF AUXILIARY FLAG NOT CARRY CARRY ZF ZERO FLAG ZERO NOT ZERO SF SIGN FLAG NEGATIF POSITIF TF TRAP FLAG TRAP NOT TRAP IF INTERUPT FLAG ENABLE DISABLE DF DIRECTION FLAG DECREMENT INCREAMENT OF OVERFLOW FLAG OVERFLOW NOT OVERFLOW 9
Arsitektur Processor 8086/8088 Kapasitas memori = 1 MB. Terdapat 1 MB (2 20 ) = 1024 sel memori 8 bit, dengan alamat 0 s/d 2 20-1 atau 00000 H s/d FFFFF H Register-register register 16 bit hanya mampu mengalamati memori dari 0 s/d (2 16 1). 10
Metode Pengalamatan Register Metode Pengalamatan dengan Dua Register / Pengalamatan Relatif (untuk mendapatkan pengalamatan 2 20 ): Segment Register Offset Register 11
Contoh Pengalamatan Relatif Segment Offset A123 : 009A H Komposisi Bit : 1010 0001 0010 0011 0000 0000 1001 1001 1010 + 1010 0001 1011 1100 1010 = A1BCA H Alamat Mutlak (physical address) 12
Organisasi Memori Pada arsitektur 8086/88 terdapat peta memori sebagai berikut : Alamat Fisik 00000 0007F 00080 003FF 00400 004FF 00500 005FF 00600 9CFFF A0000 A3FFF A4000 AFFFF B0000 B1000 B1001 B7FFF B8000 BBFFF BC000 BFFFF C0000 C7FFF C8000 F3FFF CC000 F3FFF Keterangan BIOS INTERUPT VEKTOR DOS INTERUPT VEKTOR BIOS DATA AREA DOS & BASIC DATA AREA RAM WORKING SPACE CADANGAN MONOCHROME ADAPTER VIDEO BUFFER COLOR/GRAPHICS ADAPTER EKSPANSI MEMORY HARDDISK CADANGAN F4000 F5FFF USER ROM (8 K) F6000 FDFFF ROM BASIC (32 K) FE000 FFFFF ROM BIOS (8 K) 13