. Sebuah mode pengalamatan menentukan bagaimana menghitung alamat memori efektif operand dengan menggunakan informasi yang dimiliki dalam register dan / atau konstanta yang terkandung dalam instruksi mesin atau tempat lain. Addressing mode ini terdapat 7 macam, sebagai berikut ini, yaitu :
1. IMMEDIATE ADRESSING => pengcopyan variabel angka secara langsung
2. REGISTER ADDRESSING => pencopyan variabel antar register yang berukuran sama, contoh : AL dan BH, CX dan AX, contoh penggunaan keduanya :
.model small
.code
org 100h
imme:
mov al, 65 ; disini contoh penggunaan Immediate Addressing mencopy nilai 65 ke register AL mov ah, 02h
mov dl, al ; disini contoh penggunaan Register Addressing mencopy nilai AL (65) ke register DL int 21h ; nilai 65 Hexa dicetak ke ASCII = huruf "A"
int 20h
end imme
3. DIRRECT ADRESSING => pengcopyan variabel dari suatu register atau simbol, contohnya :
.model small
.code
org 100h
mulai: jmp dir
A db 45h ; kode ASCII huruf E
dir: mov ah, 02h
mov dl, A ; disini contoh penggunaan Dirrect Addressing mencopy nilai A (45h) ke register AL int 21h ; nilai A = 45h Hexa dicetak ke ASCII = huruf "A"
int 20h
end mulai
4. REGISTER INDIRRECT ADRESSING => mengakses suatu variabel yang banyak dengan mengambil alamat efektifnya, contohnya :
.model small
.code
org 100h
mulai: jmp regin
A db 'INDONESIA'
regin:
lea bx, A ; pengambilan variabel A ("selamat sore") dengan register indirect addressing
; register BX menunjukan alamat efektif dari "Kal"
mov cx, 3 ; counter untuk Looping
ulang:
mov dl, [bx] ; mengambil nilai yang ditunjukkan register BX
mov ah, 02h
int 21h
add bx, 2 ; menambahkan nilai BX=+2, sehingga BX akan menujukkan ke 2 alamat selanjutnya
loop ulang
int 20h
end mulai
5. BASE RELATIVE ADRESSING => mengakses suatu tabel dengan mengambil alamat efektifnya.
.model small
.code
org 100h
mulai: jmp barel
A db 'SELAMAT' ; kode ASCII huruf E
barel:
xor bx, bx ; BX = 0, sebagai patokan penunjuk karakter pertama yg dicetak
mov cx, 7 ; jumlah perulangan
ulang:
mov dl, A[bx] ;ambil tabel A yang ke BX (untuk pertama kali BX = 0)
mov ah, 02h int 21h
inc bx ; inc bx sama dengan bx+1
loop ulang
int 20h
end mulai
6. Direct Indexed Addressing ==> mirip dengan base addressing, perbedaannya hanya penggunaan register yang dipakai untuk perhitungan alamat efektif. Pada indexed addressing dipakai register-register index yaitu SI dan DI.
.MODEL SMALL
.CODE
ORG 100h
Data : JMP Proses
Kar DB 'A','B','C','D','E'
;Array yg berisi 5 karkter
Proses:
LEA BX,Kar ;Muat alamat efektif Kar ke BX
MOV DL,Kar ;sama dengan MOV DL,Kar[0]
MOV AH,02h
INT 21h
MOV DL,Kar[1] ;ambil nilai array ke-2 (index 1)
MOV AH,02h
INT 21h
MOV DL,Kar+2 ;ambil nilai array ke-3 (index 2)
MOV AH,02h
INT 21h
MOV DL,[BX+3] ;ambil nilai array ke-4 (index 3)
MOV AH,02h
INT 21h
MOV DL,[BX]+4 ;ambil nilai array ke-5 (index 4)
MOV AH,02h
INT 21h
INT 20h ;Selesai, kembali ke DOS !!
END Data
7. Base Indexed Addressing ==> merupakan gabungan antara base addressing dan indexed addressing. Mode pengalamatan ini sering digunakan untuk menangani array dua dimensi. Contoh :
;MAKRO cetak angka
cetak_angka macro angka
local proses, ulang, cetak
proses:
mov ax,angka
mov bx,10
xor cx,cx
ulang:
xor dx,dx
div bx
push dx
inc cx
cmp ax,0
jne ulang
cetak:
pop dx
add dl,'0'
mov ah,02h
int 21h
loop cetak
endm
.MODEL SMALL
.CODE
ORG 100h
Data : JMP Proses
Mahasiswa STRUC
Nim Dw 0 ; 2 byte
Usia Dw 0 ; 1 byte
Nilai Dw 0,0,0 ; 3 byte
Mahasiswa ENDS
Kelas Mahasiswa 10 DUP (<>)
Proses:
LEA BX,kelas ; BX Menunjuk Offset Kelas
ADD BX,18 ; BX Menunjuk pada record ke 4
XOR SI,SI ; SI=0
MOV [BX][SI].Usia,19 ; Usia, record ke 4
cetak_angka [BX][SI].Usia
MOV [BX][SI].Nilai,76 ; Nilai pertama, record ke 4
cetak_angka [BX][SI].Nilai
MOV [BX][SI+1].Nilai,81 ; Nilai kedua, record ke 4
cetak_angka [BX][SI+1].Nilai
MOV [BX][SI+2].Nilai,95 ; Nilai ketiga, record ke 4
cetak_angka [BX][SI+2].Nilai
INT 20h ; Selesai, kembali ke DOS
END Data
Pemrograman Bahasa Rakitan | Mode Pengalamatan (Addressing Mode) Listing Program Dalam Bahasa Assembly ada yang dinamakan Mode Pengalamatan atau bahas
Minggu, 18 Desember 2011
Diposting oleh
errie vc toerixz
di
08.43
Kirimkan Ini lewat Email
BlogThis!
Bagikan ke X
Berbagi ke Facebook
Langganan:
Posting Komentar (Atom)
Lagu Daerah Bengkulu Selatan
http://www.ziddu.com/download/17765598/PantaiPasarBawah.mp3.html
http://www.ziddu.com/download/17770609/Ading.mp3.html
http://www.ziddu.com/download/17770638/BatinLingiran.mp3.html
http://www.ziddu.com/download/17770712/BeghasKedurang.mp3.html
http://www.ziddu.com/download/17765528/MutighKupi.mp3.html
http://www.ziddu.com/download/17765460/KasiahSayang.mp3.html
http://www.ziddu.com/download/17765364/KemaneAgi.mp3.html
http://www.ziddu.com/download/17765259/KebilauBaliak.mp3.html
http://www.ziddu.com/download/17765180/KedurangBadakuDillahirka.mp3.html
http://www.ziddu.com/download/17764830/TukangKundai.mp3.html
http://www.ziddu.com/download/17764761/SukatanMatau.mp3.html
http://www.ziddu.com/download/17764705/Sinjang.mp3.html
http://www.ziddu.com/download/17764641/Seginim.mp3.html
http://www.ziddu.com/download/17764579/sekundangsetungguan.mp3.html
sumber: Radio Artha FM Bengkulu Selatan
http://www.ziddu.com/download/17770609/Ading.mp3.html
http://www.ziddu.com/download/17770638/BatinLingiran.mp3.html
http://www.ziddu.com/download/17770712/BeghasKedurang.mp3.html
http://www.ziddu.com/download/17765528/MutighKupi.mp3.html
http://www.ziddu.com/download/17765460/KasiahSayang.mp3.html
http://www.ziddu.com/download/17765364/KemaneAgi.mp3.html
http://www.ziddu.com/download/17765259/KebilauBaliak.mp3.html
http://www.ziddu.com/download/17765180/KedurangBadakuDillahirka.mp3.html
http://www.ziddu.com/download/17764830/TukangKundai.mp3.html
http://www.ziddu.com/download/17764761/SukatanMatau.mp3.html
http://www.ziddu.com/download/17764705/Sinjang.mp3.html
http://www.ziddu.com/download/17764641/Seginim.mp3.html
http://www.ziddu.com/download/17764579/sekundangsetungguan.mp3.html
sumber: Radio Artha FM Bengkulu Selatan
Pemrograman Bahasa Rakitan | Mode Pengalamatan (Addressing Mode) Listing Program Dalam Bahasa Assembly ada yang dinamakan Mode Pengalamatan atau bahas
. Sebuah mode pengalamatan menentukan bagaimana menghitung alamat memori efektif operand dengan menggunakan informasi yang dimiliki dalam register dan / atau konstanta yang terkandung dalam instruksi mesin atau tempat lain. Addressing mode ini terdapat 7 macam, sebagai berikut ini, yaitu :
1. IMMEDIATE ADRESSING => pengcopyan variabel angka secara langsung
2. REGISTER ADDRESSING => pencopyan variabel antar register yang berukuran sama, contoh : AL dan BH, CX dan AX, contoh penggunaan keduanya :
.model small
.code
org 100h
imme:
mov al, 65 ; disini contoh penggunaan Immediate Addressing mencopy nilai 65 ke register AL mov ah, 02h
mov dl, al ; disini contoh penggunaan Register Addressing mencopy nilai AL (65) ke register DL int 21h ; nilai 65 Hexa dicetak ke ASCII = huruf "A"
int 20h
end imme
3. DIRRECT ADRESSING => pengcopyan variabel dari suatu register atau simbol, contohnya :
.model small
.code
org 100h
mulai: jmp dir
A db 45h ; kode ASCII huruf E
dir: mov ah, 02h
mov dl, A ; disini contoh penggunaan Dirrect Addressing mencopy nilai A (45h) ke register AL int 21h ; nilai A = 45h Hexa dicetak ke ASCII = huruf "A"
int 20h
end mulai
4. REGISTER INDIRRECT ADRESSING => mengakses suatu variabel yang banyak dengan mengambil alamat efektifnya, contohnya :
.model small
.code
org 100h
mulai: jmp regin
A db 'INDONESIA'
regin:
lea bx, A ; pengambilan variabel A ("selamat sore") dengan register indirect addressing
; register BX menunjukan alamat efektif dari "Kal"
mov cx, 3 ; counter untuk Looping
ulang:
mov dl, [bx] ; mengambil nilai yang ditunjukkan register BX
mov ah, 02h
int 21h
add bx, 2 ; menambahkan nilai BX=+2, sehingga BX akan menujukkan ke 2 alamat selanjutnya
loop ulang
int 20h
end mulai
5. BASE RELATIVE ADRESSING => mengakses suatu tabel dengan mengambil alamat efektifnya.
.model small
.code
org 100h
mulai: jmp barel
A db 'SELAMAT' ; kode ASCII huruf E
barel:
xor bx, bx ; BX = 0, sebagai patokan penunjuk karakter pertama yg dicetak
mov cx, 7 ; jumlah perulangan
ulang:
mov dl, A[bx] ;ambil tabel A yang ke BX (untuk pertama kali BX = 0)
mov ah, 02h int 21h
inc bx ; inc bx sama dengan bx+1
loop ulang
int 20h
end mulai
6. Direct Indexed Addressing ==> mirip dengan base addressing, perbedaannya hanya penggunaan register yang dipakai untuk perhitungan alamat efektif. Pada indexed addressing dipakai register-register index yaitu SI dan DI.
.MODEL SMALL
.CODE
ORG 100h
Data : JMP Proses
Kar DB 'A','B','C','D','E'
;Array yg berisi 5 karkter
Proses:
LEA BX,Kar ;Muat alamat efektif Kar ke BX
MOV DL,Kar ;sama dengan MOV DL,Kar[0]
MOV AH,02h
INT 21h
MOV DL,Kar[1] ;ambil nilai array ke-2 (index 1)
MOV AH,02h
INT 21h
MOV DL,Kar+2 ;ambil nilai array ke-3 (index 2)
MOV AH,02h
INT 21h
MOV DL,[BX+3] ;ambil nilai array ke-4 (index 3)
MOV AH,02h
INT 21h
MOV DL,[BX]+4 ;ambil nilai array ke-5 (index 4)
MOV AH,02h
INT 21h
INT 20h ;Selesai, kembali ke DOS !!
END Data
7. Base Indexed Addressing ==> merupakan gabungan antara base addressing dan indexed addressing. Mode pengalamatan ini sering digunakan untuk menangani array dua dimensi. Contoh :
;MAKRO cetak angka
cetak_angka macro angka
local proses, ulang, cetak
proses:
mov ax,angka
mov bx,10
xor cx,cx
ulang:
xor dx,dx
div bx
push dx
inc cx
cmp ax,0
jne ulang
cetak:
pop dx
add dl,'0'
mov ah,02h
int 21h
loop cetak
endm
.MODEL SMALL
.CODE
ORG 100h
Data : JMP Proses
Mahasiswa STRUC
Nim Dw 0 ; 2 byte
Usia Dw 0 ; 1 byte
Nilai Dw 0,0,0 ; 3 byte
Mahasiswa ENDS
Kelas Mahasiswa 10 DUP (<>)
Proses:
LEA BX,kelas ; BX Menunjuk Offset Kelas
ADD BX,18 ; BX Menunjuk pada record ke 4
XOR SI,SI ; SI=0
MOV [BX][SI].Usia,19 ; Usia, record ke 4
cetak_angka [BX][SI].Usia
MOV [BX][SI].Nilai,76 ; Nilai pertama, record ke 4
cetak_angka [BX][SI].Nilai
MOV [BX][SI+1].Nilai,81 ; Nilai kedua, record ke 4
cetak_angka [BX][SI+1].Nilai
MOV [BX][SI+2].Nilai,95 ; Nilai ketiga, record ke 4
cetak_angka [BX][SI+2].Nilai
INT 20h ; Selesai, kembali ke DOS
END Data
1. IMMEDIATE ADRESSING => pengcopyan variabel angka secara langsung
2. REGISTER ADDRESSING => pencopyan variabel antar register yang berukuran sama, contoh : AL dan BH, CX dan AX, contoh penggunaan keduanya :
.model small
.code
org 100h
imme:
mov al, 65 ; disini contoh penggunaan Immediate Addressing mencopy nilai 65 ke register AL mov ah, 02h
mov dl, al ; disini contoh penggunaan Register Addressing mencopy nilai AL (65) ke register DL int 21h ; nilai 65 Hexa dicetak ke ASCII = huruf "A"
int 20h
end imme
3. DIRRECT ADRESSING => pengcopyan variabel dari suatu register atau simbol, contohnya :
.model small
.code
org 100h
mulai: jmp dir
A db 45h ; kode ASCII huruf E
dir: mov ah, 02h
mov dl, A ; disini contoh penggunaan Dirrect Addressing mencopy nilai A (45h) ke register AL int 21h ; nilai A = 45h Hexa dicetak ke ASCII = huruf "A"
int 20h
end mulai
4. REGISTER INDIRRECT ADRESSING => mengakses suatu variabel yang banyak dengan mengambil alamat efektifnya, contohnya :
.model small
.code
org 100h
mulai: jmp regin
A db 'INDONESIA'
regin:
lea bx, A ; pengambilan variabel A ("selamat sore") dengan register indirect addressing
; register BX menunjukan alamat efektif dari "Kal"
mov cx, 3 ; counter untuk Looping
ulang:
mov dl, [bx] ; mengambil nilai yang ditunjukkan register BX
mov ah, 02h
int 21h
add bx, 2 ; menambahkan nilai BX=+2, sehingga BX akan menujukkan ke 2 alamat selanjutnya
loop ulang
int 20h
end mulai
5. BASE RELATIVE ADRESSING => mengakses suatu tabel dengan mengambil alamat efektifnya.
.model small
.code
org 100h
mulai: jmp barel
A db 'SELAMAT' ; kode ASCII huruf E
barel:
xor bx, bx ; BX = 0, sebagai patokan penunjuk karakter pertama yg dicetak
mov cx, 7 ; jumlah perulangan
ulang:
mov dl, A[bx] ;ambil tabel A yang ke BX (untuk pertama kali BX = 0)
mov ah, 02h int 21h
inc bx ; inc bx sama dengan bx+1
loop ulang
int 20h
end mulai
6. Direct Indexed Addressing ==> mirip dengan base addressing, perbedaannya hanya penggunaan register yang dipakai untuk perhitungan alamat efektif. Pada indexed addressing dipakai register-register index yaitu SI dan DI.
.MODEL SMALL
.CODE
ORG 100h
Data : JMP Proses
Kar DB 'A','B','C','D','E'
;Array yg berisi 5 karkter
Proses:
LEA BX,Kar ;Muat alamat efektif Kar ke BX
MOV DL,Kar ;sama dengan MOV DL,Kar[0]
MOV AH,02h
INT 21h
MOV DL,Kar[1] ;ambil nilai array ke-2 (index 1)
MOV AH,02h
INT 21h
MOV DL,Kar+2 ;ambil nilai array ke-3 (index 2)
MOV AH,02h
INT 21h
MOV DL,[BX+3] ;ambil nilai array ke-4 (index 3)
MOV AH,02h
INT 21h
MOV DL,[BX]+4 ;ambil nilai array ke-5 (index 4)
MOV AH,02h
INT 21h
INT 20h ;Selesai, kembali ke DOS !!
END Data
7. Base Indexed Addressing ==> merupakan gabungan antara base addressing dan indexed addressing. Mode pengalamatan ini sering digunakan untuk menangani array dua dimensi. Contoh :
;MAKRO cetak angka
cetak_angka macro angka
local proses, ulang, cetak
proses:
mov ax,angka
mov bx,10
xor cx,cx
ulang:
xor dx,dx
div bx
push dx
inc cx
cmp ax,0
jne ulang
cetak:
pop dx
add dl,'0'
mov ah,02h
int 21h
loop cetak
endm
.MODEL SMALL
.CODE
ORG 100h
Data : JMP Proses
Mahasiswa STRUC
Nim Dw 0 ; 2 byte
Usia Dw 0 ; 1 byte
Nilai Dw 0,0,0 ; 3 byte
Mahasiswa ENDS
Kelas Mahasiswa 10 DUP (<>)
Proses:
LEA BX,kelas ; BX Menunjuk Offset Kelas
ADD BX,18 ; BX Menunjuk pada record ke 4
XOR SI,SI ; SI=0
MOV [BX][SI].Usia,19 ; Usia, record ke 4
cetak_angka [BX][SI].Usia
MOV [BX][SI].Nilai,76 ; Nilai pertama, record ke 4
cetak_angka [BX][SI].Nilai
MOV [BX][SI+1].Nilai,81 ; Nilai kedua, record ke 4
cetak_angka [BX][SI+1].Nilai
MOV [BX][SI+2].Nilai,95 ; Nilai ketiga, record ke 4
cetak_angka [BX][SI+2].Nilai
INT 20h ; Selesai, kembali ke DOS
END Data
0 komentar:
Posting Komentar