Extra 7

image

Godt jobbet!

Å mestre SLEDE8 kan bli avgjørende i denne førjulstiden! Hvis du synes denne var lett kan du prøve deg på e-læringsmodulen med kode 8e7c9876c85e5471.
; Føde består av to tall, A og B
; Skriv ut resultatet av A + B som en ASCII-streng

; Eksempel: A=0xA0 og B=0x08 => '168'
; Eksempel: A=0xFF og B=0xFF => '510'

; R10 = antall hundre å skrive ut.
; R11 = antall tiere å skrive ut.
; R12 = antall enere å skrive ut.
; R15 = antall bytes lest

les:
; Sjekk om vi har lest 2 bytes, hvis ja skriv ut tekst istedenfor
SETT r2, 2
LIK r15, r2
BHOPP sjekkResultat

; Les inn føde, og inkrementer lest føde antall med 1
LES r0
SETT r2, 1
PLUSS r15, r2

tallSjekk100:

; Sjekk om størrelsen i første byte er over 200
SETT r2, 200
SEL r0, r2
BHOPP 100leggTil2

; Sjekk om størrelsen i første byte er over 100
SETT r2, 100
SEL r0, r2
BHOPP 100leggTil1
HOPP tallSjekk10

100leggTil2:
SETT r2, 2
PLUSS r10, r2
SETT r2, 200
MINUS r0, r2
HOPP tallSjekk10

100leggTil1:
SETT r2, 1
PLUSS r10, r2
SETT r2, 100
MINUS r0, r2
HOPP tallSjekk10
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

tallSjekk10:

; Sjekk om størrelsen i første byte er over 90
SETT r2, 90
SEL r0, r2
BHOPP 10leggTil9

; Sjekk om størrelsen i første byte er over 80
SETT r2, 80
SEL r0, r2
BHOPP 10leggTil8

; Sjekk om størrelsen i første byte er over 70
SETT r2, 70
SEL r0, r2
BHOPP 10leggTil7

; Sjekk om størrelsen i første byte er over 60
SETT r2, 60
SEL r0, r2
BHOPP 10leggTil6

; Sjekk om størrelsen i første byte er over 50
SETT r2, 50
SEL r0, r2
BHOPP 10leggTil5

; Sjekk om størrelsen i første byte er over 40
SETT r2, 40
SEL r0, r2
BHOPP 10leggTil4

; Sjekk om størrelsen i første byte er over 30
SETT r2, 30
SEL r0, r2
BHOPP 10leggTil3

; Sjekk om størrelsen i første byte er over 20
SETT r2, 20
SEL r0, r2
BHOPP 10leggTil2

; Sjekk om størrelsen i første byte er over 10
SETT r2, 10
SEL r0, r2
BHOPP 10leggTil1
HOPP tallSjekk1


10leggTil9:
SETT r2, 9
PLUSS r11, r2
SETT r2, 90
MINUS r0, r2
HOPP tallSjekk1

10leggTil8:
SETT r2, 8
PLUSS r11, r2
SETT r2, 80
MINUS r0, r2
HOPP tallSjekk1

10leggTil7:
SETT r2, 7
PLUSS r11, r2
SETT r2, 70
MINUS r0, r2
HOPP tallSjekk1

10leggTil6:
SETT r2, 6
PLUSS r11, r2
SETT r2, 60
MINUS r0, r2
HOPP tallSjekk1

10leggTil5:
SETT r2, 5
PLUSS r11, r2
SETT r2, 50
MINUS r0, r2
HOPP tallSjekk1

10leggTil4:
SETT r2, 4
PLUSS r11, r2
SETT r2, 40
MINUS r0, r2
HOPP tallSjekk1

10leggTil3:
SETT r2, 3
PLUSS r11, r2
SETT r2, 30
MINUS r0, r2
HOPP tallSjekk1

10leggTil2:
SETT r2, 2
PLUSS r11, r2
SETT r2, 20
MINUS r0, r2
HOPP tallSjekk1

10leggTil1:
SETT r2, 1
PLUSS r11, r2
SETT r2, 10
MINUS r0, r2
HOPP tallSjekk1

;;;;;;;;;;;; LEGG TIL RESTERENDE SOM enere
tallSjekk1:
PLUSS r12, r0
HOPP les



sjekkResultat:
; FØRST SJEKK OM VI MÅ OVERFØRE NOE FRA 1'ere til 10'ere, OG SÅ 10'ere til 100.
SETT r2, 10
SEL r12, r2
BHOPP fiksEnere

SETT r2, 10
SEL r11, r2
BHOPP fiksTiere
HOPP skrivUt


fiksEnere:
SETT r2, 1
PLUSS r11, r2
SETT r2, 10
MINUS r12, r2
HOPP sjekkResultat

fiksTiere:
SETT r2, 1
PLUSS r10, r2
SETT r2, 10
MINUS r11, r2 


skrivUt:
SETT r2, 0x30
PLUSS r10, r2 ; Nummer til ascii nummer
PLUSS r11, r2
PLUSS r12, r2
SKRIV r10
SKRIV r11
SKRIV r12

image

Flag

EGG{ba92ae3a9af1a157703ca83d9a9fb11d}