STRUKTUR REGISTER SET MIKROPROSESOR PENGERTIAN REGISTER Dalam pemrograman

  • Slides: 18
Download presentation
STRUKTUR REGISTER SET MIKROPROSESOR

STRUKTUR REGISTER SET MIKROPROSESOR

PENGERTIAN REGISTER Dalam pemrograman dengan bahasa Assembly, mau tidak mau anda harus berhubungan dengan

PENGERTIAN REGISTER Dalam pemrograman dengan bahasa Assembly, mau tidak mau anda harus berhubungan dengan apa yang dinamakan sebagai Register merupakan sebagian memori dari mikroprosesor yang dapat diakses dengan kecepatan yang sangat tinggi. Dalam melakukan pekerjaannya mikroprosesor selalu menggunakan register-register sebagai perantaranya, jadi register dapat diibaratkan sebagai kaki dan tangannya mikroprosesor.

PENGALAMATAN segmen: offset • Sistem komputer 8086 mempunyai bus alamat 20 bit, tetapi ukuran

PENGALAMATAN segmen: offset • Sistem komputer 8086 mempunyai bus alamat 20 bit, tetapi ukuran register - termasuk register alamat (memory address register) – yang dimilikinya hanya 16 bit, lantas bagaimana cara mengatasinya. • Cara pemberian alamat 20 bit dilakukan menggunakan 2 komponen alamat: segmen dan offset, yang masing-masing berukuran 16 bit. BIU akan menggeser ke kiri nilai segmen sebanyak 4 bit (mengalikan dengan 16), kemudian menambahkan offset untuk memperoleh alamat fisik memori yang dikirimkan melalui bus alamat.

 • Untuk lebih jelasnya, diberi contoh untuk memberi alamat fisik $38 AB 4,

• Untuk lebih jelasnya, diberi contoh untuk memberi alamat fisik $38 AB 4, segmen dapat diisi dengan angka $348 A, dan offset diisi dengan angka $4214, lihat Gambar I-4. Cara penulisan kombinasi segmen dan offset adalah: segmen: offset

JENIS-JENIS REGISTER • Register yang digunakan oleh mikroprosesor dibagi menjadi 5 bagian dengan tugasnya

JENIS-JENIS REGISTER • Register yang digunakan oleh mikroprosesor dibagi menjadi 5 bagian dengan tugasnya yang berbeda-beda pula, yaitu : 1. Segmen Register 2. Pointer dan Index Register 3. General Purpose Register 4. Index Pointer Register 5. Flags Register

1. Segmen Register yang termasuk dalam kelompok ini terdiri atas register CS, DS, ES

1. Segmen Register yang termasuk dalam kelompok ini terdiri atas register CS, DS, ES dan SS yang masingnya merupakan register 16 bit. Registerregister dalam kelompok ini secara umum digunakan untuk menunjukkan alamat dari suatu segmen. Register CS(Code Segment) digunakan untuk menunjukkan tempat dari segmen yang sedang aktif, sedangkan register SS(Stack Segment) menunjukkan letak dari segmen yang digunakan oleh stack.

Register DS(Data Segment) biasanya digunakan untuk menunjukkan tempat segmen, dimana data-data pada program disimpan.

Register DS(Data Segment) biasanya digunakan untuk menunjukkan tempat segmen, dimana data-data pada program disimpan. Register ES(Extra Segment), sesuai dengan namanya adalah suatu register bonus yang tidak mempunyai suatu tugas khusus. Register ES ini biasanya digunakan untuk menunjukkan suatu alamat di memory, misalkan alamat memory video. Pada prosesor 80386 terdapat tambahan register segment 16 bit, yaitu FS<Extra Segment> dan GS<Extra Segment>.

2. Pointer dan Index Register yang termasuk dalam kelompok ini adalah register SP, BP,

2. Pointer dan Index Register yang termasuk dalam kelompok ini adalah register SP, BP, SI dan DI yang masing terdiri atas 16 bit, digunakan sebagai penunjuk atau pointer terhadap suatu lokasi di memory. Register SP(Stack Pointer) yang berpasangan dengan register segment SS (SS: SP) digunakan untuk mununjukkan alamat dari stack, sedangkan register BP(Base. Pointer)yang berpasangan dengan register SS(SS: BP) mencatat suatu alamat di memory tempat data.

Register SI(Source Index) dan register DI(Destination Index) biasanya digunakan sebagai offset (masing-masing berpasangan dengan

Register SI(Source Index) dan register DI(Destination Index) biasanya digunakan sebagai offset (masing-masing berpasangan dengan ES dan DS) yang menunjuk ke suatu variabel/data untuk operasi string (larik data). Pada prosesor 80386 terdapat tambahan register 32 bit, yaitu ESP, EBP, ESI dan EDI.

3. General Purpose Register yang termasuk dalam kelompok ini adalah register AX, BX, CX

3. General Purpose Register yang termasuk dalam kelompok ini adalah register AX, BX, CX dan DX yang masing-masing terdiri atas 16 bit. Register- register ini mempunyai suatu ciri khas, yaitu dapat dipisah menjadi 2 bagian dimana masing-masing bagian terdiri atas 8 bit, Akhiran H menunjukkan. High sedangkan akhiran L menunjukkan Low. - AX === AH & AL - BX === BH & BL - CX === CH & CL - DX === DH & DL

 • Register AX, secara khusus digunakan pada operasi aritmatika dan untuk menyimpan hasil

• Register AX, secara khusus digunakan pada operasi aritmatika dan untuk menyimpan hasil operasi, sehingga disebut akumulator. • Register BX, biasanya digunakan untuk menunjukkan suatu alamat offset dari suatu segmen. • 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. – BX dan DX biasanya digunakan sebagai offset dari alamat data di memori (dengan segmen DS). • Padaprosesor 80386 terdapat tambahan register 32 bit, yaitu EAX, EBX, ECX dan EDX.

4. Index Pointer Register • Register IP berpasangan dengan CS(CS: IP) menunjukkan alamat memory

4. Index Pointer Register • Register IP berpasangan dengan CS(CS: IP) menunjukkan alamat memory tempat dari intruksi(perintah) selanjutnya yang akan dieksekusi. • Register IP juga merupakan register 16 bit. • Pada prosesor 80386 digunakan register EIP yang merupakan register 32 bit.

5. Flags Register. • Sesuai dengan namanya Flags(Bendera), register flip-flop 16 bit ini menunjukkan

5. Flags Register. • Sesuai dengan namanya Flags(Bendera), register flip-flop 16 bit ini menunjukkan kondisi dari suatu keadaan< ya atau tidak >. yang dihasilkan oleh eksekusi suatu operasi oleh EU. • flag juga mengatur beberapa operasi tertentu.

 • Sebanyak 6 buah flag merupakan flag kondisi yang menunjukkan keadaan setelah eksekusi

• Sebanyak 6 buah flag merupakan flag kondisi yang menunjukkan keadaan setelah eksekusi suatu instruksi, yaitu: Carry Flag (CF), Parity Flag (PF), Auxiliary Carry Flag (AF), Zero Flag (ZF), Sign Flag (SF), dan Overflow Flag (OF). • Sedangkan, 3 buah flag sisanya berupa flag kontrol yang mengendalikan operasi tertentu, yaitu: Single Step Trap Flag (TF), Interrupt Flag (IF), dan String Direction Flag (DF).

1) CF akan diset (bernilai 1) jika sebuah operasi menghasilkan simpanan (carry) melebihi bit

1) CF akan diset (bernilai 1) jika sebuah operasi menghasilkan simpanan (carry) melebihi bit terpenting (most significat bit, MSB, atau bit 15), dan sebaliknya direset (bernilai 0) apabila tidak ada simpanan. 2) PF diset jika suatu operasi memberikan hasil dengan parity genap, dan direset jika hasilnya berparity ganjil. 3) AF mirip dengan CF, namun diset oleh operasi BCD (binary coded decimal). 4) ZF diset jika suatu operasi menghasilkan nol. 5) SF merupakan nilai MSB hasil operasinya, yang menunjukkan tanda; diset jika hasil bertanda negatif dan direset jika hasil bertanda positif. 6) OF diset jika hasil operasi melebihi tempat yang disediakan.

 • Flag kondisi akan digunakan oleh perintah tertentu untuk menentukan pencabangan atau lompatan.

• Flag kondisi akan digunakan oleh perintah tertentu untuk menentukan pencabangan atau lompatan. • Sedangkan flag kontrol dapat diatur dengan perintah tertentu. 1) Jika TF diset bernilai 1, maka mikroprosesor akan bekerja langkah demi langkah, sehingga dapat digunakan untuk mencek jalannya suatu program. 2) IF digunakan untuk mengatur apakah kerja mikroprosesor dapat diinterupsi atau tidak. 3) DF digunakan untuk menentukan arah operasi string.

SELESAI. . . Brooo

SELESAI. . . Brooo