From 7bf92a62710e739d6842f87e0a00077a8f544f90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Vrhov=C5=A1ek?= Date: Thu, 2 Jan 2025 20:49:37 +0100 Subject: [PATCH] Update program.s --- program.s | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/program.s b/program.s index 0dee7fe..b195dcb 100644 --- a/program.s +++ b/program.s @@ -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 \ No newline at end of file