Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .include "m128def.inc"
- .org 0x0
- jmp start
- .org 0x100
- .macro led_init
- ldi r16, 0b11110000
- out DDRD, r16
- out DDRB, r16
- clr r16
- .endmacro
- .macro het_init
- ldi r16, 0b11111111
- out DDRA, r16
- clr r16
- .endmacro
- .macro gomb_init
- ldi r16, 0
- sts PORTG, r16
- .endmacro
- .macro stack_init
- ldi r25, low(RAMEND)
- out SPL, r25
- ldi r25, high(RAMEND)
- out SPH, r25
- .endmacro
- start:
- led_init
- het_init
- gomb_init
- stack_init
- call egy
- vege:
- jmp vege
- ;-----szubrutinok-------
- ; 1#: Nyolcbites összeadás segítségével adja össze az összes nyolcbites ötvennel osztható
- ; számot. Használjon ciklust, de ne használjon osztást az algoritmushoz. Az összeadandó
- ; elemeket nem adhatja meg konstansként, hanem ki kell számolnia őket a ciklusban.
- ; Az eredményt tárolja el az adatmemóriában a 0x100-as címen.
- egy:
- ldi r16, 0 ; növelendő szám
- ldi r22, 0 ; SUM
- ldi r23, 0;
- ldi r18, 50
- ldi r19, 50
- ldi ZL, low(0x100) ; eredmény cím
- ldi ZH, high(0x100) ; eredmény cím
- ciklus:
- cpi r16, 255
- breq vege2
- cp r16, r18
- breq oszthato
- inc r16
- jmp ciklus
- oszthato:
- add r17, r16
- st Z, r17
- inc r16
- add r18, r19
- jmp ciklus
- vege2:
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement