Mode Pengalamatan (Bab II)
2.2. Immediate Addressing
Immediate addressing atau sebenarnya lebih dikenal sebagai immediate constant addressing, mengacu pada transfer data konstanta pada register atau RAM
Percobaan 2.2.1:
Org 0h
Start: MOV A, #0h; isi accumulator dengan data 0
MOV A,#11h;isi accumulator dengan data 11h
MOV B,#27h;isi register B dengan data 27h
end
Percobaan 2.2.2:
Org 0h
Start: MOV 70,#0h; isi RAM alamat 70h dengan data 0
MOV 71,#1h; isi RAM alamat 71h dengan data 1
MOV 72,#2h; isi RAM alamat 72h dengan data 2
end
Percobaan 2.2.3:
Org 0h
Start: MOV DPTR,#1234h;isi register 16 bit DPTR dg 1234h
end
Percobaan 2.2.4:
Org 0h
Start: MOV PSW,#0; Select register bank 0
MOV R0,#0; put 0 into register 0
MOV R1,#1; put 1 into register 1
MOV R2,#2; put 2 into register 2
MOV R3,#3; put 3 into register 3
MOV R4,#4; put 4 into register 4
MOV R5,#5; put 5 into register 5
MOV R6,#6; put 6 into register 6
MOV R7,#7; put 7 into register 7
end
Percobaan 2.2.5:
Org 0h
Start: MOV PSW,#8; Select register bank 1
MOV R0,#0; put 0 into register 0
MOV R1,#1; put 1 into register 1
MOV R2,#2; put 2 into register 2
MOV R3,#3; put 3 into register 3
MOV R4,#4; put 4 into register 4
MOV R5,#5; put 5 into register 5
MOV R6,#6; put 6 into register 6
MOV R7,#7; put 7 into register 7
end
2.3. Direct Addressing
Pada mode direct addressing operand ditentukan oleh address 8 bit pada instruksi. Hanya data RAM internal dan SFR dapat dialamati secara langsung.
Percobaan 2.3.1:
Org 0h
Start: Mov 70h,#1
Mov A, 70h; copy isi register internal 70h ke accumulator
Mov A,#0; clear accumulator
Mov 90h,A; copy isi accumulator ke RAM 90h atau Port 1
end
Percobaan 2.3.2:
Inbyte equ 70h
Port1 equ 90h
Org 0h
Start: Mov A,Inbyte; copy isi dari Inbyte ke Accumulator
Mov A,#0; Clear accumulator
Mov Port1,A; coopy isi accumulator ke Port 1
end
2.4. Register Addressing
Register addressing, merupakan proses transfer data ke register R0 s/d R7
Percobaan 2.4.1:
Org 0h
Start: Mov PSW,#10h; select register bank 2
Mov R0, A; copy isi accumulator ke register R0
Mov R7, B; copy isi register B ke register R7
Mov PSW,#18h; select register bank 3
Mov A,R0; copy isi register R0 ke accumulator
Mov R7,A; copy isi accumulator ke register R7
end
2.5. Register Indirect Addressing
Mode pengalamatan ini merupakan salah satu pengalamatan yang paling ampuh. Alamat dari source atau tujuan tidak disebutkan secara eksplisit. Tetapi isi dari register yang digunakan sebagai target address.
Percobaan 2.5.1:
Org 0h
Start: Mov PSW, #0; pilih register bank 0
Mov R0, #78h; isi register R0 dengan konstanta 78h
Mov @R0, #1; isi RAM alamat 78h dengan data 1
end
Percobaan 2.5.2:
Org 0h
Start: Mov PSW, #0; pilih register bank 1
Mov R0, 90h; copy data dari RAM 90h atau Port 1 ke register R0
Mov @R0,#1; isi RAM alamat yang ditunjuk oleh R0 dengan 1
End
Mov A, #1; isi accumulator dengan data 1
Mov DPTR, #8000h; isi data pointer dengan konstanta 8000h
Movx @DPTR,A; copy isi accumulator ke data eksternal pada
alamat yang ditentukan oleh DPTR
Percobaan 2.5.3:
Org 0h
Mov DPTR,#Karakter
Start: Mov A, #0
Inc DPTR
Movc A, @A+DPTR
Mov R0,A
Sjmp Start
Karakter:
DB 0,1,2,3,4,5,6,7,8,9
Contoh Soal:
Rencanakan program assembly untuk pengambilan data dari port P1 sebanyak 10 buah data dan masing masing disimpan di alamat RAM mulai 37h s/d 40h seperti yang ditunjukkan pada gambar, setelah dilakukan proses penyimpanan maka pindahkan masing-masing data ke alamat mulai 50h s/d 59h.
Penyelesaian:
Org 0h
Start: Mov R0, 37h
Mov R1, 10
Ambil: Mov A,P1
Mov @R0,A
Inc R0
Acall Delay
DJNZ R1, Ambil
Mov R0,37h
Mov R1,59h
Mov R2,10
Simpan:Mov A,@R0
Mov @R1,A
Inc R0
Inc R1
DJNZ R1, Simpan
Delay: Mov R3,#0FFh
Delay1:Mov R4, #0FFh
Delay2:DJNZ R4,Delay2
DJNZ R3,Delay1
Ret
End
No comments:
Post a Comment