PENGERTIAN REGISTER

Register tidak dapat dilepaskan dari mikroprosessor, sebab pada mikroprosessor terdapat register yang berfungsi untuk menyimpan sementara hasil dari tahapan operasi arithmetika dan logika pada mikroprosessor. Register dalam bahasa rakitan menggunakan real mode memory yang sesuai dengan mikroprosessor Intel generasi 8088 s/d Pentium.

Register yang terdapat pada mikroprosessor Intel terdiri dari :

  1. General purpose register (register serbaguna)

  2. Pointer register (register pointer)

  3. Index register (register indeks)

  4. Segment register (register segment)

  5. Flag register (register status).

Semua register di atas lebarnya 32 bit, kecuali register segment (CS, DS, ES, SS, FS dan GS) hanya 16 bit. Register 32 bit dapat digunakan sebagai register 16 bit, kecuali register General purpose register dapat dibagi menjadi 8 bit (AL,AH, BL, BH, CL, CH, DL dan DH) yang berasal dari 16 bit (AX, BX, CX, DX). Register 32 bit diberi kode di depan register dengan E misalnya: EAX, EBX, ECX dan EDX.

Macam-macam Jenis dan Fungsi Register

Berikut ini jenis dan fungsi dari masing-masing Register yaitu :

        1. General Purpose Register (Register Serbaguna)

Register untuk keperluan umum yang terdiri atas :

          1. Register AX (Accumulator register) berfungsi sebagai tempat:

Sementara hasil suatu operasi arithmetika atau logika (AL, AH, AX dan EAX)

            • Memasukkan nomor layanan interupsi, untuk keperluan pemesanan sebuah layanan interupsi (register AH).

            • Menyimpan bilangan yang dikalikan (reg AL, AX, EAX) dan setengan bagian terkecil (LSB) dari hasil perkalian (register DX-AX dan EDX-EAX).

            • Menyimpan setengah bagian terkecil(LSB) sebuah bilangan dibagi (DX-AX dan EDX-EAX) dan hasil bagi (AL, AX, EAX).

          1. Register BX (Base Register)

Base register adalah register untuk menyimpan alamat offset data yang terletak di memori (BL, BH, BX dan EBX)

          1. Register CX (Counter Register)

Counter register adalah register serbaguna yang berfungsi sebagai:

            • Pencacah untuk operasi loop (CX dan ECX)

            • Pencacah untuk operasi shift dan rotate (CL)

            • Pencacah (counter) untuk operasi string (CX)

          1. Register DX (Data register)

Data register adalah register serbaguna yang berfungsi sebagai :

            • Penyimpan hasil perkalian 16 bit (DX-AX) dan 32 bit (EDX-EAX).

            • Penyimpan hasil pembagian (DX-AX dan EDX-EAX)

            • Penyimpan data hexadesimal (kode ASCII) di reg DL untuk dicetak di layar monitor.

2. Pointer Register

Register ini untuk menunjukkan alamat sebuah data di lokasi memori, dipakai saat operasi perpindahan data (dari/ke memori), operasi stack (PUSH/POP) dan penunjukkan alamat suatu instruksi. Berikut adalah macam-macam pointer register: SP (Stack Pointer) dan ESP, BP (Base Pointer) dan IP (Instruction Pointer).

3. Index Register

Sama dengan pointer register, sering digunakan untuk menunjukkan alamat sebuah data di lokasi memori pada operasi string. Macam-macam register Index adalah : SI (Source Index), DI (Destination Index).

4. Segment Register

Segment register membentuk alamat memori untuk data. Pada operasi real mode suatu segment register akan berbeda dengan segment register pada operasi protected mode. Yang termasuk ke dalam segment register antara lain :

            • Code segment -> untuk menunjukkan alamt instruksi berikutnya.

            • Data segment -> untuk menunjukkan alamat data pada transfer register

            • Extra segment -> register tambahan untuk operasi string

            • Stack segment -> dengan SP u/ menunjukkan stack dan memanggil suatu prosedur (CALL) dan mengarah ke program utama (RET).

            • FS dan GS register -> register tambahan u/ segmen memori yang besar.

5. Flag Register

Berfungsi untuk menunjukkan status (keadaan) sesaat dari mikroprosessor.

Bit-bit pada flag akan mengalami perubahan, tergantung proses yang baru saja berlangsung. Adapun kode bit yaitu sebagai berikut :

  • C (carry) -> 1=ada carry out 0= tdk ada carry out

  • P (Parity) -> 1=paritas genap 0= paritas ganjil

  • A (auxxiliary carry) -> 1=ada carry 0=tdk ada carry

  • Z (zero) -> 1=hasilnya nol 0=hasilnya bukan nol

  • S (sign) -> 1=hasilnya negatif 0=hasilnya positif

  • T (trap) -> bila diset 1 dimungkinkan melakukan debugging.

  • I (interrupt) -> 1= pin INTR enable 0=pin INTR disable

  • D (direction) -> 1=cacahan turun 0=cacahan naik

  • (Overflow) -> menunjukkan adanya kelebihan kapasitas atau tidak

  • IOPL (input-output privalege level) -> untuk protected mode

  • NT (nested task) -> indikasi dari penggabungan dengan operasi lain.

  • RF (resume) -> untuk debugging

  • VF (Virtual mode) -> untuk operasi virtual pada protected mode

  • AC (alignment check) -> untuk data word dialamati ke memori

  • Register merupakan tempat menyimpan data sementara yang berada dalam CPU.

  • Register terdiri atas 5 bagian yaitu : General Purpose Register, Pointer Register, Index Register, Segment Register, Flag Register.

  • Fungsi setiap register bermacam-macam sesuai peruntukannya yang telah diatur oleh pembuat mikroprosesor.

MODE PENGALAMATAN DATA

Pengertian Pengalamatan Data

Pengalamatan data (addressing mode) adalah perpindahan data dari lokasi asal ke lokasi tujuan.

Lokasi asal berupa register, lokasi memori atau data mentah (kode hexadesimal / bilangan). Lokasi tujuan berupa register atau lokasi memori. Perintahnya memakai MOV.

Mode Pengalamatan

Beberapa mode pengalamatan antara lain:

> Register Addressing

Merupakan penyalinan data antar register (transfer ergister)

MOV reg1, reg2

Contoh:

MOV AX, BX ; isi BX disalin ke AX

MOV SI, DI ; isi DI disalin ke SI

> Immediate Addressing

Merupakan penyalinan suatu data ke register

MOV reg, data

Contoh:

MOV AH, 02h ;02h disalin ke AH

MOV DL,’A’ ; karakter A disalin ke DL

MOV AX,’AB’ ;karakter AB disalin ke AX

> Direct Addressing

Merupakan penyalinan data dari lokasi memori tertentu ke accumulator (AX, AH atau AL) atau sebaliknya.

MOV reg, [alamat]

MOV [alamat], reg

Contoh:

MOV AL, [0100h] ;isi data di alamat memori 100h ke AL

MOV [0250h], AX ;isi AX disalin ke alamat 0250h

> Direct Addressing with Displacement

Pada dasarnya sama dengan Direct Addressing, tetapi tidak hanya memakai register AL atau AX.

MOV reg, [alamat]

MOV [alamat], reg

Contoh:

MOV DL, [0100h] ;isi data di alamat memori 100h ke DL

MOV [0250h], DX ;isi DX disalin ke alamat 0250h

> Indirect Addresing

Penyalinan data secara tidak langsung dari lokasi alamat yang ditunjuk oleh BP, BX, DI atau SI ke suatu register atau sebaliknya.

MOV reg, [reg]

MOV [reg], reg

MOV [reg], [reg]

Contoh:

MOV EAX, [BX] ;isi data di lokasi memori [DSx10h+BX] ke register EAX

MOV [CX], AX ;isi data di AX disalin ke lokasi memori [DSx10h +CX}

> Relative Addressing

Merupakan penyalinan data dari lokasi memori yang ditunjuk oleh BP, BX atau SI dan DI ditambah displacement ke register tujuan atau sebaliknya.

MOV reg, [base+disp]

MOV [base+disp], reg

Contoh:

MOV AX, [BX+10h]

MOV [BX+20h], CX

MOV [BP+30h], CH

MOV [DI+50h], DL

> Base Plus Index Addressing

Merupakan penyalinan data dari lokasi memori yang ditunjuk oleh BP atau BX ditambah isi index (SI atau DI) ke register tujuan atau sebaliknya.

MOV reg, [base+index]

MOV [base+index], reg

Contoh:

MOV DX, [BX+SI]

MOV [BP+DI], AX

> Base Relative Plus Index Addressing

Merupakan penyalinan data dari lokasi memori yang ditunjuk oleh BP atau BX ditambah isi index (SI/DI) + displacement atau sebaliknya.

MOV reg, [base+index+disp]

MOV [base+index+disp], reg

Contoh:

MOV DX, [BX+SI+10h]

MOV [BP+DI+20h], AX

  • Pengalamatan data merupakan perpindahan data dari lokasi asal ke lokasi tujuan.

  • Setiap lokasi dapat berupa register, lokasi memori.

  • Perintah untuk melakukan mode pengalamatan data adalah MOV.

  • Penggunaan perintah MOV harus sesuai dengan aturan mode pengalamatan data.