Update program.s

This commit is contained in:
Martin Vrhovšek 2025-01-02 20:49:37 +01:00
parent bdbe8fc23f
commit 7bf92a6271

View File

@ -2,8 +2,10 @@
.org 0x20
izvorna_koda: .asciz " \n\n stev1: .var 0xf123 @ komentar 1\n @prazna vrstica \n stev2: .var 15
\nstev3: .var 128\n_start:\n mov r1, #5 @v r1 premakni 5\nmov r2, #1\nukaz3: add r1, #1\nb _start"
\nstev3: .var 128\n_start:\n mov r1, #5 @v r1 premakni 5\nmov r2, #1\nukaz3: add r1, #1\nb _start"
.align
buffer: .space 50
.align
izvorna_koda_pocisceno: .space 120
@ -36,7 +38,6 @@ CMP R1, #10 @ \n
BEQ PRECISTI_ZACETEK
SUB R0, R0, #1
B PRECISCEVANJE
PRECISCEVANJE:
LDRB R1, [R0, #1]!
@ -49,30 +50,43 @@ BEQ KOMENTAR
@ pogledamo za novo vrstico
CMP R1, #10
BEQ NEWLINE
BEQ NEWLINE_PRVIC
B POSODOBI_PRECISCENO
KOMENTAR:
@ iteracija do \n znaka da vidimo in prepisemo komentar z nulami
LDRB R1, [R0, #1]!
@ preverimo ali je nova vrstica
CMP R1, #10
@ verjetno treba posodobiti, da ne bo neposrednih onelinerjev
BEQ PRECISCEVANJE
@ ce ni damo povecamo naslov
LDRB R1, [R0, #1]!
BEQ KOMENTAR_EOL
B KOMENTAR
NEWLINE: @ ko dobimo \n pocisti vse whitespacee
LDRB R1, [R0, #1]!
CMP R1, #32
KOMENTAR_EOL:
LDRB R3, [R2] @ ce je prejsnji znak \n potem ne bomo vstavili se enega
CMP R3, #10 @ pogledamo za novo vrstico
BEQ NEWLINE
B POSODOBI_PRECISCENO
STRB R1, [R2, #1]!
B NEWLINE
NEWLINE_PRVIC:
@ prvi newline char prepisemo preostale pobrisemo
STRB R1, [R2, #1]!
NEWLINE: @ ko dobimo \n pocisti vse whitespacee
@ mislim da tukaj ne pocisti
LDRB R1, [R0, #1]!
CMP R1, #32 @ presledek
BEQ NEWLINE
SUB R0, R0, #1
B PRECISCEVANJE
POSODOBI_PRECISCENO:
STRB R1, [R2, #1]!
B PRECISCEVANJE
_end: b _end
_end: b _end