Skip to content

Instantly share code, notes, and snippets.

@AlejandroVelasco
Created April 21, 2024 02:11
Show Gist options
  • Select an option

  • Save AlejandroVelasco/a0acb30bc0e5c4c00dc21e0a1aa0bac5 to your computer and use it in GitHub Desktop.

Select an option

Save AlejandroVelasco/a0acb30bc0e5c4c00dc21e0a1aa0bac5 to your computer and use it in GitHub Desktop.
main:
; Definir los números
ldi r16, 2 ; n1
ldi r17, 4 ; n2
ldi r18, 6 ; n3
; Calcular la media aritmética
add r16, r17 ; r16 = n1 + n2
add r16, r18 ; r16 = n1 + n2 + n3
ldi r19, 3 ; divisor
; División: resultado en r16, residuo en r17
lsr r16 ; Dividir por 2
ror r17 ; Colocar el bit menos significativo del residuo en el bit más significativo
lsr r16 ; Dividir por 2
ror r17 ; Colocar el bit menos significativo del residuo en el bit más significativo
lsr r16 ; Dividir por 2
loop:
cpi r16, 0 ; Comprobar si el resultado es válido
brmi negative ; Si es negativo, saltar a la etiqueta negative
cpi r16, 255 ; Comprobar si el resultado es válido
brsh negative ; Si es mayor que 255, saltar a la etiqueta negative
sbi DDRB, 5 ; Establecer PB5 como salida
sbi PORTB, 5 ; Encender LED si el resultado es válido
rjmp loop ; Bucle infinito
negative:
cbi PORTB, 5 ; Apagar LED si el resultado no es válido
rjmp loop ; Bucle infinito
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment