Pengantar
Organisasi Komputer
AVR Memory
M. Anwar Ma’sum, Bayu Anggorojati, Grafika Jati
Contoh Program
.include “[Link]“
forever:
ldi R26, 04 ; 04 diartikan sebagai nilai desimal 4
ldi R27, $02 ; $02 diartikan sebagai 02 dalam hexadecimal
ld R16, X
andi R16, 0x63
st X, R16 0x02 = $02
rjmp forever
Tim Dosen - POK 2016
Directive – code segment
• Beberapa Directive yang sering digunakan:
Tim Dosen - POK 2016
Directive – code segment (cont.)
Tim Dosen - POK 2016
Directive – code segment (cont.)
Tim Dosen - POK 2016
Directive – define bytes
Tim Dosen - POK 2016
Directive – origin
Tim Dosen - POK 2016
Directive – define words
Tim Dosen - POK 2016
Directive – .db dengan letak
berbeda
Tim Dosen - POK 2016
AVR Register: X, Y, Z
X, Y, Z adalah 16-bit pointer register, digunakan untuk
menunjukkan alamat dengan max 16-bit pada SRAM
Z adalah 16-bit pointer register, dapat digunakan untuk
menunjukkan alamat dengan max 16-bit pada program
memory
Tim Dosen - POK 2016
AVR Register: X, Y, Z
X, Y, Z adalah 16-bit pointer register, digunakan untuk
menunjukkan alamat dengan max 16-bit pada SRAM
Z adalah 16-bit pointer register, dapat digunakan untuk
menunjukkan alamat dengan max 16-bit pada program
memory
Contoh 4:
.EQU Address = RAMEND
LDI YH, HIGH(Address)
LDI YL, LOW(Address)
Tim Dosen - POK 2016
AVR Register
Pointer Sequence Examples
X Read/Write dari/ke alamat X, jangan LD R1,X
nilai ubah pointernya ST X,R1
X+ Read/Write dari/ke alamat X dan LD R1,X+
setelah itu increment satu nilai ST X+,R1
pointernya
-X Decrement satu nilai pointer dan LD R1,-X
kemudian read/write dari/ke alamat ST -X,R1
yang baru
Tim Dosen - POK 2016
Menggunakan Data dari
SRAM Register SRAM
Jumlahkan isi R5 R0 ..
dengan data di memory R1 ..
address $0123. ..
R2 .
Simpan hasilnya di
memory address $0154. R3
R4
R5
.. $0123
.
R16 (Data)
..
R17 .
.. $0154
.
R28 ..
R29 ..
..
R30 .
R31 Tim Dosen - POK 2016
Menggunakan Data dari
SRAM Register SRAM
LDI YH, $01
LDI YL, $23
LD R16, Y
R0 ..
R1 ..
ADD R16, R5
..
R2 .
LDI ZH, $01 R3
LDI ZL, $54
R4
ST Z, R16
R5
.. $0123
.
R16 (Data)
..
R17 .
.. $0154
.
R28 =$23 ..
ALU R29 =$01
Y ..
..
R30 =$54 .
Z
R31 =$01 Tim Dosen - POK 2016
Contoh program: [Link]
Tim Dosen - POK 2016
Init Stack Pointer
Tim Dosen - POK 2016
Copy Program Memory to Data
Memory
Tim Dosen - POK 2016
Copy Program Memory to Data
Memory (cont.)
Tim Dosen - POK 2016
Copy Data Memory to Data
Memory
Tim Dosen - POK 2016
Pointer Z ke Program Memory
Tim Dosen - POK 2016