"Wellcome to my blog..... Share it"

Selasa, 14 Desember 2010

Bahasa Rakitan " Assembly ( Pengalamatan Data )"

          Pengalamatan data (addressing mode) dapat dipahami sebagai perpindahan data dari lokasi asal ke lokasi tujuan. Lokasi asal dapat berupa register, daerah memori atau data mentah (pada immediate addressing) sedangkan lokasi tujuan dapat berupa register atau daerah memori saja. Perpindahan disini mengandung penyalinan karena isi lokasi asal tidak berubah, yang berubah adalah isi lokasi tujuan. Pada pengalamatan data ini, instruksi pengalamatan data akan membuat salinan (copy) isi lokasi asal, dan kemudian memindahkannya ke lokasi tujuan. Pengalamatan data ini dilakukan dengan memanfaatkan instruksi MOV.
Ada beberapa mode pengalamatan data untuk mikroposesor keluarga Intel
1.  Register Addressing
     Register Addressing merupakan penyalinan data antarregister, yaitu dari suatu register asal ke register tujuan.
     Sintaks: MOV reg1, reg2
     Contoh:
                  MOV AX, BX  ;Menyalin isi register BX ke AX
                  MOV BL, DH  ;Menyalin isi register DH ke BI
                  MOV SI, DI  ;Menyalin isi register SI ke DI
    Ada 3 pengecualian dalam Register Addressing.
           1)  Perpindahan data antar register segmen.
                Contoh:
                MOV ES, DS   ;Menyalin isi register DS ke register ES
                MOV SS, CS  ;Menyalin isi register CS ke register SS
           2)  Perpindahan data antarregister yang berbeda ukuran .
                Contoh:
                MOV AX, CL  ;Menyalin isi register CL ke register AX
                MOV DH, BX  ;Menyalin isi register BX ke register DH
          3)  Perpindahan data menuju register CS.
               Contoh:
               MOV CS, BL  ;menyalin Isi register BX ke register CS
               MOV CS, AL  ;menyalin Isi register AX ke register CS

2.  Immediate Addressing
     Immediate addressing merupakan penyalinan suatu data (mentah) ke suatu register.
     Sintaks: MOV reg, data
     Contoh:
                 MOV  BL, 2Ah   ;Menyalin 2Ah ke BL
                 MOV  CH, ‘A’   ;Menyalin karakter ASCI A ke CH
                 MOV  AX, ‘AB’ ;Menyalin karakter ASCI AB ke AX

3.  Direct Addressing
     Direct Addressing  merupakan penyalinan data dari lokasi memori tertentu ke accumulator (AX, AH atau AL) atau sebaliknya (dari accumulator ke lokasi memori tertentu).
     Sintaks: MOV reg _ A, [alamat]
                  MOV [alamat], reg _ A
                 Catatan: reg _ A = accumulator
     Contoh:
                  MOV AL, [0100h] ;Menyalin data dari lokasi memori beralamat  
                                                ;[DSx10h+100h] ke register AL
                  MOV  [0200h], CX ;Menyalin data dari register CX ke lokasi memori
                                                  beralamat [DSx10h+200h]

4.  Direct Addressing with Displacement
     Direct Addressing with Displacement  atau dikenal juga dengan displacemen addressing pada dasarnya sama dengan direct addressing, tetapi register yang terlibat tidak hanya accumulator.
    Sintaks: MOV reg , [alamat]
                MOV [alamat], reg
    Contoh:
               MOV  DL, [0100h]  ;Menyalin data dari lokasi memori beralamat 
                                               ;[DS x 10h+100h] ke register DL
               MOV  [0200h], CX  ;Menyalin data dari register CX ke lokasi
                                                ;memori beralamat [DS x 10h+200h]
             1)  Register Indirect Addressing
                  Register Indirect Addressing merupakan penyalinan data:
                  a.  Dari lokasi memori yang alamatnya ditunjukkan oleh isi register penunjuk
                       alamat (yang termasuk register ini:  BP, BX, DI atau SI) ke suatu register.
                  b.  Dari suatu register asal ke lokasi memori yang alamatnya ditunjukkan oleh isi
                       register penunjuk alamat (BP,BX, DI, atau SI) atau
                  c.  Antarlokasi memri yang masing-masing alamatnya ditunjukkan oleh isi register
                       penunjuk alamat (BP, BX, DI, atau SI)

                      Sintaks: MOV reg ,[reg]
                                   MOV [reg], reg
                                   MOV [reg], [reg]
                      Contoh :
                                   MOV EAX, [BX] ;Menyalin data dari lokasi ;memori
                                                                 beralamat [DS x 10h + ;BX] ke register EAX                                   MOV [CX],AX ;Menyalin data dari register AX ;ke lokasi
                                                             memori beralamat
                                                            ;[DS x 10h + CX]
              2)  Register Relative Addressing
                   Register Relative Addressing merupakan penyalinan data dari:
                   a.  lokasi memori yang alamatnya ditujukan oleh isi suatu base register ( BP atau
                       BX ) atau  index register  (SI atau DI), yang kemudian ditambah dengan
                       displacement, ke suatu register tujuan, atau
                   b. Suatu register ke lokasi memori yang alamatnya ditunjukkan oleh isi  base
                       register (BP atau BX) atau index register (SI atau DI) + displacement.
                      Sintaks: MOV reg ,[base+disp]
                                   MOV reg, [index+disp]
                                   MOV [base + disp], reg
                                   MOV [index+disp], reg
                     Contoh: 
                                  MOV AX, [BX +10h] ;Menyalin data dari lokasi 
                                                                     ;memori beralamat [DS x 10h + BX +
                                                                     ;10h] ke AX
                                 MOV CX, [SI +20h] ;Menyalin data dari lokasi memori
                                                                   ;beralamat [DS x 10h + BX + ;10h] ke CX
               3)  Base Plus Index Addressing
                    Base Plus Index Addressing merupakan penyalinan data:
                    a.  dari lokasi memori yang alamatnya ditunjukkan oleh isi base register (BP/BX)
                        + isi index register (SI/DI)   ke suatu register tujuan atau 
                    b.  dari suatu register asal ke lokasi memori yang alamatnya ditunjukkan oleh isi
                         base register (BP/BX) + isi index register (SI/DI) + disp.

                        Sintaks: MOV reg, [base + index]
                                     MOV [base + index], reg
                       Contoh :
                                    MOV  DX, [BX+SI]  ;Menyalin isi lokasi memori
                                                                      ;beralamat [DS x 10h + BX + SI + 10h]
                                                                      ;ke DX
                                    MOV [BP+DI], AX ;Menyalin isi AX ke lokasi memori
                                                                    ;beralamat [SS x 10h + ;BP+ DI + 20h]
              4)  Base Relative Plus Index Addressing
                   Base Relative Index Addressing merupakan penyalinan data : 
                   a.  dari lokasi memori yang alamatnya ditunjukkan oleh isi base register (BP/BX)
                       + index register (SI/DI) + displacement  ke suatu register tujuan atau 
                   b.  dari suatu register asal ke lokasi memori yang alamatnya ditunjukkan oleh isi
                        base register (BP/BX) + isi index register (SI/DI) + disp.

                       Sintaks: MOV reg, [base + index + disp]
                                    MOV [base + index + dsp], reg
                       Contoh :
                                   MOV  DX, [BX+SI+10h] ;Menyalin isi lokasi memori
                                                                            ;beralamat [DS x 10h + BX + SI
                                                                            ;+ 10h] ke DX
                                   MOV [BP+DI+20h], AX ;Menyalin isi AX ke ;lokasi
                                                                            memori beralamat ;[SS x 10h +
                                                                            BP+ DI + ;20h]

0 komentar:

Posting Komentar

Pages 3123 »