Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; thats how i understood the instructions
- ; after reading a few short avr tutorials
- ; hope it helps
- .include "m64def.inc"
- jmp RESET
- .dseg
- var1: .BYTE 3 ; high byte of the word
- var2: .BYTE 2 ; low byte of the word - i hope thats correct
- .cseg
- const: .DB 0xAA, 0xCC, 0xDD
- reset:
- ldi ZL, low(var1)
- ldi ZH, high(var1) ; load high byte of address in Z pointer: Z = &var1
- ldi r17, 0xBB ; r17 = 0xBB
- st Z, r17 ; *Z = 0xBB: var1 = 0xBB
- ldi ZL, low(const<<1)
- ldi ZH, high(const<<1) ; load low byte of address in Z pointer: Z = (&const) + 1: points on 0xCC
- lpm ; load r0 = *Z: r0 = 0xCC
- jmp mainloop
- .dseg
- var3: .BYTE 4
- .cseg
- .org 0x20
- mainloop:
- ldi r20, 0xF0 ; r20 = 0xF0
- ...
- Symbol Segment Value
- var1 dseg ?
- var3 dseg ?
- reset cseg ?
- const cseg ?
- mainloop cseg ?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement