Lowongan Kerja Skripsi Gratis Jurnal Online STMIK AKBA STMIK AKBA YouTube LinkedIn Facebook Twitter Google+ RSS Desain Login

Minggu, 04 September 2011

Pengantar Bahasa Rakitan Lanjutan



REGISTER

Register adalah sebagian kecil memori komputer yang dipakai untuk tempat penampungan  data dengan ketentuan bahwa data yang terdapat dalam register dapat diproses dalam berbagai operasi dengan melihat berapa besar kemampuan menampung register tersebut.
Register dapat dibagi dalam 5 golongan, yaitu:
1.             General Purpose Register (Scratch-Pad Register), terdiri dari:
·      AX (AH + AL)  = Accumulator Register
·      BX (BH + BL)    = Base Register
·      CX (CH + CL)   = Counter Register
·      DX (DH + DL)  = Data Register
2.             Segment Register
·      CS                       = Code Segment Register
·      DS                       = Data Segment Register
·      SS                        = Stack Segment Register
·      ES                       = Extra Segment Register
3.             Pointer Register
·      IP                        = Instruction Pointer Register
·      SP                       = Stack Pointer Register
·      BP                       = Base Pointer Register
4.             Index Register
·      SI                         = Source Index Register
·      DI                        = Destination Index Register
5.             Flag Register

Ö  GENERAL PURPOSE REGISTER

General Purpose Register terdiri dari emapt buah (4) register yang mempunyai kemampuan 16 bit dan dapat dibagi menjadi Register Low dan High Bits yang masing-masing berkemampuan 8 bit.
ü   Register AX
Register AX merupakan register aritmatik, karena register ini selalu dipakai dalam operasi penambahan, pengurangan, perkalian dan pembagian.
Setiap register general purpose mempunyai Register Low dan Register High, maka untuk AX register low-nya adlaah AL dan register high-nya adalah AH. Register AH merupakan tempat menaruh nilai service number untuk beberapa Interrupt tertentu.
ü   Register BX
Register BX adalah salah satu dari dua register base Addressing Mode yang dapat mengambil atau menulis langsung dari/ke memori.
ü   Register CX
Register CX merupakan suatu counter untuk meletakkan jumlah lompatan pada Loop yang anda lakukan.
ü   Register DX
Register DX mempunyai tiga tugas, yaitu:
-     Membantu AX dalam proses perkalian dan pembagian, terutama perkalian dan pembagian 16 bit.
-     DX merupakan register offset dari DS
-     DX bertugas menunjukkan nomor port pada operasi port

Ö  PENGALAMATAN MEMORI DAN SEGMENT REGISTER

Bila memori yang terdapat pada komputer adalah 1 megabyte maka ruang memorinya adalah :

00000
00001
00002
00003
00004
.
.
.
FFFF9
FFFFA
FFFFB
FFFFC
FFFFD
FFFFE
FFFFF

Pengalamatan ruang memori pada gambar diatas merupakan pengalamatan mutlak dengan kemampuan 20 bit. Sedangkan pada 8088 hanya berkemapuan 16 bit, berarti masih kekurangan 4 bit untuk menampung suatu alamat memori.
Karena hal tersebut diatas, maka dilakukan penomoran dengan dua register. Sebuah register berisi 16 bit dihitung dari kanan dan 16 bit yang lain dari sebelah kiri.
Register yang mengisi 16 bit dari kiri biasa disebut Register Segment dan Register yang mengisi 16 bit dari kanan adalah Register Offset. Isi Register Segment disebut Segment dan isi Register Offset disebut Offset.
Cara pengalamatan memori yang dilakukan komputer sering disebut Relative Address. Contoh Relative Address dan Alamat Mutlak:

-             A123:099A
Komposisi Bit Segment         1010    0001    0010    0011    0000
Komposisi Bit Offset                          0000    1001    1001    1010   
Alamat Mutlak                        1010    0001    1011    1100    1010 (HEXA:A1BCA)
-             5674:9001
Komposisi Bit Segment         0101    0110    0111    0100    0000
Komposisi Bit Offset                          1001    0000    0000    0001
Alamat Mutlak                        0101    1111    0111    0100    0001 (HEXA:5F741)

ü   Register CS
Tugas register CS yang penting adalah menunjukkan segment program berada. Pasangan register ini adalah register IP.
ü   Register DS dan SS
Tugas register DS dan SS adalah menunjukkan segmen dari segment data dan segment stack. Pasangan dari register DS adalah DX dan register SS adalah SP.
ü   Register ES
Register ini tidak mempunyai tugas, namun berguna untuk pemrograman pada saat melakukan operasi ke segment lain.

Ö  POINTER REGISTER

Pointer Register bertugas untuk menyimpan offset dari relative address.
ü   Register IP
Pasangan register IP adalah register CS yang merupakan register terpenting untuk menunjukkan baris perintah program. Pada pertama program dijalankan register ini akan langsung menunjuk pada awal program.
ü   Register SP
Pasangan register SP adalah register SS yang digunakan untuk operasi stack. Pada saat program pertama dijalankan register ini akan menunjuk pada byte terakhir stack.
ü   Register BP
Register BP mempunyai fungsi yang sama dengan register BX yaitu dapat menulis dan membaca ke atau dari memori secara langsung.
Perbedaannya adalah BX menulis dan membaca dengan segment SS (Stack Segment).
Register BP digunakan juga dalam komunikasi anatara bahasa komputer, seperti PASCAL dengan Assembler ataupun Turbo C dengan Assembler.

Ö  INDEX REGISTER

Index Register terdiri dari dua register yaitu register DI dan SI, dimana kedua register ini merupakan register yang dipakai untuk melakukan Operasi String. Kedua register ini sering digunakan untuk menulis dan membaca ke atau dari memori seperti BX dan BP.

Ö  FLAG REGISTER

X

X
X
X
O
D
I
T
S
Z
X
A
X
P
X
C

Flag Bits :
·               O     = Overflow Flag
·               D      = Direction Flag
·               I       = Interrupt Flag
·               T      = Trap Flag
·               S       = Sign Flag
·               Z      = Zero Flag
·               A      = Auxiliary Carry Flag
·               P      = Parity Flag
·               C      = Carry Flag
·               X      = Reserved (kosong)

Flag register ini merupakan suatu komposisi register 16 bit dengan ketentuan  seperti gambar diatas, dimana komposisi bitnya dapat mengecek apakah sesuatu berfungsi atau tidak.
Contoh :
  Interrupt Flag mengecek apakah pada saat operasi Interupt sedang aktif atau tidak, bila tidak aktif, Interrupt tidak akan dijalankan.
Carry Flag mengecek apakah pada saat operasi terjadi kesalahan atau tidak.
 Sign Flag menunjukkan apakah suatu bilangan bertanda atau tidak dan sebagainya.


"TERIMA KASIH SEMOGA BERMANFAAF"