.equ PINA = 0x00 ; définition des adresses des ports .equ DDRA = 0x01 .equ PORTA = 0x02 .equ PINB = 0x03 .equ DDRB = 0x04 .equ PORTB = 0x05 .equ RAMEND = 0x21FF .equ SPH = 0x3E ; initialisation de la pile .equ SPL = 0x3D .org 0x000 ; Vecteur RESET jmp debut .org 0x0080 debut: ldi r16,0x00 ; config direction ports out DDRA,r16 out DDRB,r16 r16 <- 0x01 r17 <- 0x00 boucle: ; On décale vers la gauche port A lsr r16 ; Tant que la chenille est toujours dans le port A, on continue si r16 > 0 saut boucle ; si elle dépasse, alors on la met sur le début du port B si r17 = 0 alors r17 <- 0x01 lsr r17 ; si elle dépasse, on la remet dans le port A si r17 = 0 alors r16 <- 0x01 ; pause ldli r24,8 tempo: subi r22,1 sbci r23,0 sbci r24,0 bbrc tempo saut boucle