Pengertian Register

download Pengertian Register

of 6

Transcript of Pengertian Register

Bahasa RakitanPengeretian Register dan jenis-jenis interrupt 12090673_Herwin prasetya

PENGERTIAN REGISTER Dalam pemrograman dengan bahasa Assembly, mau tidak mau anda harus berhubungan dengan apa yang dinamakan sebagai register. Lalu apakah yang dimaksud dengan register itu sebenarnya? Register merupakan sebagin memori dari mikroprosesor yang dapat diakses dengan kecepatan yang sangat tinggi. Dalam melakukan pekerjaanya mikroprosesor selalu menggunakan registerregister sebagai perantaranya, jadi register dapat di ibaratkan sebagai kaki dan tanganya mikroprosesor. JENIS-JENIS REGISTER Register yang digunakan mikroprosesor berbeda-beda pula, yaitu: Segmen Register Register yang termasuk dalam kelompok ini terdiri atas register CS,DS,ES,dan SS yang masingmasing nya merupakan register 16 bit. Register register dalam kelompok ini secara umum digunakan untuk menunjukan alamat dari suatu segmen. Register CS (Code Segment) digunakan untuk menunjukan tempat dari segmen yang sedang aktif, sedangkan register SS (Stack Segment) menunjukan letak dari segmen yang digunakan oleh stack. Kedua register ini sebaiknya tidak sembarangan diubah karena akan menyebabkan kekacauan pada program anda nantinya. Register DS(Data Segment) biasanya digunakan untuk menunjukan tempat segment dimana data-data pada program disimpan. Umunya isi dari register ini tidak perlu diubah kecuali pada program residen. Register ES (Extra Segment) sesuai dengan namanya adalah suatu register bonus yang tidak mempunyai suatu tugs khusus. Register es ini biasanya digunakan untuk menunjukan suatu alamat di memory, misalkan alamat memori video. Pada prosesor 80386 terdapat tambahan register segment 16 bit,yaitu: FS dan GS. Pointer dan index register Register yang termasuk dalam kelompok ini adalah register SP,BP,SI, dan DI yang masingmasing terdiri atas 16 bit. Register register dalam kelompok 16 ini secara umum digunakan sebagai penunjuk atau pointer terhadap suatu lokasi di memori.Jenis-jenis register dan Interrupt | Bahasa Rakitan 1

dibagi menjadi

5 bagian dengan tugasnya yang

Bahasa RakitanPengeretian Register dan jenis-jenis interrupt 12090673_Herwin prasetya

Register SP(Stack Pointer) yang berpasangan dengan register segment SS (SS:SP) digunakan untuk menunjukan alamat dari stack,sedangkan register BP (Base Pointer) yang berpasangan dengan register SS (SS:BP) mencatat suatu alamat di memori tempat data. Register SI (source index) dan register DI(destination index) biasanya digunakan pada operasi string dengan mengkases secara langsung pada alamat memory yang ditunjukan oleh kedua register ini. Pada prosesor 80386 terdapat tambahan register 32 bit, yaitu ESP,EBP,ESI dan EDI. General Purpose Register. Register yang termasuk dalam kelompok ini adalah register AX,BX,CX, dan DX yang masingmasing terdiri atas 16 bit. Register-register 16 bit dari kelompok ini mempunyai suatu ciri khas, yaitu dapat dipisah menjadi 2 bagian dimana masing-masing bagian terdiri atas 8 bit, seperti pada gambar 4.1. akhiran H menunjukan high sedangkan akhiran L menunjukan Low. +AX+ +BX+ +CX+ +DX+

+-+--+--+-+ +-+--+--+-+ +-+--+--+-+ +-+--+--+-+ | AH | AL | | BH | BL | | CH | CL | | DH | DL | +----+----+ +----+----+ +----+----+ +----+----+ Secara umum register-register dalam kelompok ini dapat digunakan untuk berbagai keperluan , walaupun demikian ada pula penggunaan khusus dari masing-masing register ini yaitu: Register AX, secara khusus digunakan pada operasi aritmatika terutama dalam operasi pembagian dan pengurangan. Register BX, biasanya digunakan untuk menunjukan suatu alamat offset dari suatu segment. Register CX, digunakan secara khusus pada operasi looping dimana register ini menentukan berapa banyaknya looping yang akan terjadi. Register DX, digunakan untuk menampung sisa hasil pembagian 16 bit, pada prosesor 80386 terdapat tambahan register 32 bit, yaitu EAX,EBX,ECX, dan EDX. Index pointer register Register IP berpasangan dengan CS (CS:IP) menunjukan alamat di memory tempat dari intruksi (perintah) selanjutnya yang akan di eksekusi. Register IP juga merupakan register 16 bit. Pada prosesor 80386 digunakan register EIP yang merupakan register 32 bit. Flags registerJenis-jenis register dan Interrupt | Bahasa Rakitan

2

Bahasa RakitanPengeretian Register dan jenis-jenis interrupt 12090673_Herwin prasetya

Sesuai dengan namanya flags(bendera) register ini menunjukan kondisi dari suatu keadaan . Karena setiap keadaan dapat digunakan 1 bit saja, maka sesuai jumlah bitnya, flags register ini mampu mencatat sampai 16 keadaan. Adapun flag yang terdapat pada mikroprosesor 8088 keatas adalah: OF jika terjadi OverFlow pada operasi aritmatika, bit ini akan bernilai 1. SF Jika digunakan bilangan bertanda ini akan bernilai 1. ZF Jika hasil operasi menghasilkan nol, bit ini akan bernilai 1. CF Jika terjadi borrow pada operasi pengurangan atau carry pada penjumlahan, bit ini akan bernilai 1. PF. Digunakan untuk menunjukan paritas bilangan. Bit ini akan bernilai 1 bila bilangan yang dihasilkan merupakan bilangan genap. DF . Digunakan pada operasi string untuk menunjukan arah proses. IF. CPU akan mengabaikan interupsi yang terjadi jika bit ini 0. TF digunakan terutama untuk debugging , dengan operasi step by step. AF. Digunakan oleh operasi BCD, seperti pada perintah AAA. NT. Digunakan pada prosesor 80286 dan 80386 untuk menjaga jalanya interupsi yang terjadi secara beruntun. IOPL . flag ini terdiri atas 2 bit dan digunakan pada prosesor 80286 dan 80386 untuk mode proteksi. PE. Digunakan untuk mengaktifkan mode proteksi. Flag ini akan bernilai 1 pada mode mode proteksi dan bernilai 0 pada mode real. MP. Digunakan bersama Flag TS untuk menangani terjadinya intruksi WAIT. EM Flag ini digunakan untuk mensimulasikan Coprosesor 80287 atau 80387. TS Flag ini tersedia pada 80286 keatas. ET Flag ini digunakan untuk menentukan jenis Coprosesor 80287 atau 80387. RF Register ini hanya terdapat pada Prosesor 80386 keatas. VF. Bila flag ini bernilai 1 pda saat mode proteksi, mikroprosesor akan memungkinkan dijalankanya aplikasi mode real pada mode proteksi. Register ini hanya terdapat pada 80386 keatas. 2. JENIS-JENIS LAYANAN INTERRUPT DAN NOMER SERVICE NYA DISERTAI DENGAN KEGUNAANYA MASING-MASING. PENGERTIAN INTERRUPTJenis-jenis register dan Interrupt | Bahasa Rakitan 3

Bahasa RakitanPengeretian Register dan jenis-jenis interrupt 12090673_Herwin prasetya

Interupsi adalah suatu permintaan khusus kepada mikroposesor untuk melakukan sesuatu. Bila terjadi interupsi, maka komputer akan menghentikan dahulu apa yang sedang dikerjakannya dan melakukan apa yang diminta oleh yang menginterupsi. Pada IBM PC dan kompatibelnya disediakan 256 buah interupsi yang diberi nomor 0 sampai 255. Nomor interupsi 0 sampai 1Fh disediakan oleh ROM BIOS, yaitu suatu IC didalam komputer yang mengatur operasi dasar komputer. Jadi bila terjadi interupsi dengan nomor 0-1Fh, maka secara default komputer akan beralih menuju ROM BIOS dan melaksanakan program yang terdapat disana. Program yang melayani suatu interupsi dinamakan Interrupt Handler. 3.2. VEKTOR INTERUPSI Setiap interrupt akan mengeksekusi interrupt handlernya masing-masing berdasarkan nomornya. Sedangkan alamat dari masing- masing interupt handler tercatat di memori dalam bentuk array yang besar elemennya masing-masing 4 byte. Keempat byte ini dibagi lagi yaitu 2 byte pertama berisi kode offset sedangkan 2 byte berikutnya berisi kode segmen dari alamat interupt handler yang bersangkutan. Jadi besarnya array itu adalah 256 elemen dengan ukuran elemen masingmasing 4 byte. Total keseluruhan memori yang dipakai adalah sebesar 1024 byte (256 x 4 = 1024) atau 1 KB dan disimpan dalam lokasi memori absolut 0000h sampai 3FFh. Array sebesar 1 KB ini disebut Interupt Vector Table (Table Vektor Interupsi). Nilai-nilai yang terkandung pada Interupt Vector Table ini tidak akan sama di satu komputer dengan yang lainnya. Interupt yang berjumlah 256 buah ini dibagi lagi ke dalam 2 macam yaitu: - Interupt 00h - 1Fh (0 - 31) adalah interrupt BIOS dan standar di semua komputer baik yang menggunakan sistem operasi DOS atau bukan. Lokasi Interupt Vector Table-nya ada di alamat absolut 0000h-007Fh. - Interupt 20h - FFh (32 - 255) adalah interrupt DOS. Interrupt ini hanya ada pada komputer yang menggunakan sistem operasi DOS dan Interupt Handler-nya di-load ke memori oleh DOS pada saat DOS digunakan. Lokasi Interupt Vector Table-nya ada di alamat absolut 07Fh-3FFh. +--------------------------------------------------------------------------------------------------------------+ | Nomor | Interupt Nama Interup Nomor Interupt Nama Interupt | |4

+---------------------------------------------------------------------------------------------------------------+ | *00h Divide By Zero 10h Video Service |

Jenis-jenis register dan Interrupt | Bahasa Rakitan

Bahasa RakitanPengeretian Register dan jenis-jenis interrupt 12090673_Herwin prasetya

| *01h | *02h | *03h | 04h | 05h | 06h | 07h | 08h | 09h | 0Ah | 0Bh | 0Ch | 0Dh | 0Eh | 0Fh

Single Step Non MaskableInt(NMI) Break point Arithmatic Overflow Print Screen Reserved Reserved Clock Tick(Timer) Keyboard I/O Channel Action COM 1 (serial 1) COM 2 (serial 2) Fixed Disk Diskette LPT 1 (Parallel 1)

11h 12h 13h 14h 15h 16h 17h 18h 19h 1Ah 1Bh 1Ch 1Dh 1Eh 1Fh

Equipment Check Memory Size Disk Service Communication (RS-232) Cassette Service Keyboard Service Printer Service ROM Basic Bootstrap Loader BIOS time & date Control Break Timer Tick Video Initialization Disk Parameters Graphics Char

| | | | | | | | | | | | | | |

+--------------------------------------------------------------------------------------------------------------+ * Interrupt ini telah dipastikan kegunaannya oleh sistem untuk keperluan yang khusus , tidak boleh dirubah oleh pemrogram seperti yang lainnya. - DEVIDE BY ZERO : Jika terjadi pembagian dengan nol maka proses akan segera dihentikan. - SINGLE STEP : Untuk melaksanakan / mengeksekusi intruksi satu persatu. -NMI:Pelayanan terhadap NMI (Non Maskable Interrupt) yaitu interupsi yang tak dapat dicegah. - BREAK POINT : Jika suatu program menyebabkan overflow flag menjadi 1 maka interrupt ini akan melayani pencegahannya dan memberi tanda error.5

Jenis-jenis register dan Interrupt | Bahasa Rakitan

Bahasa RakitanPengeretian Register dan jenis-jenis interrupt 12090673_Herwin prasetya

+---------------------------------------------------------------+ | Nomor | Interrupt | +---------------------------------------------------------------+ | 20h | 21h | 22h | 23h | 24h | 25h | 26h | 27h Terminate Program DOS Function Services Terminate Code Ctrl-Break Code Critical Error Handler Absolute Disk Read Absolute Disk Write Terminate But Stay Resident | | | | | | | | Nama Interrupt |

+---------------------------------------------------------------+

6

Jenis-jenis register dan Interrupt | Bahasa Rakitan