From 3e1b14c35ddef8b14d7ba13bbc49f6b3c5513c8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Vrhov=C5=A1ek?= Date: Fri, 3 Jan 2025 11:58:14 +0100 Subject: [PATCH] Update program.s --- program.s | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/program.s b/program.s index a552502..925eadf 100644 --- a/program.s +++ b/program.s @@ -5,7 +5,7 @@ izvorna_koda: .asciz " \n\n stev1: .var 0xf123 @ komentar 1\n @prazna vrstica \n \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 +buffer: .byte .align izvorna_koda_pocisceno: .space 120 @@ -27,6 +27,7 @@ mov r3, #0 ADR R0, izvorna_koda ADR R2, izvorna_koda_pocisceno SUB R0, R0, #1 @ da lahko pri iteraciji cez adreso zacnemo pri nicli +SUB R2, R2, #1 @ tukaj bomo vrgli ven \n, whitespace dokler ne dosezemo prvega "proper" znaka PRECISTI_ZACETEK: @@ -44,7 +45,11 @@ SUB R0, R0, #1 PRECISCEVANJE: LDRB R1, [R0, #1]! CMP R1, #0 -BEQ _end +BEQ PREPISI_KODO + +@ pogledamo za presledek +CMP R1, #32 @ presledek +BEQ PRESLEDEK_KOMENTAR @ pogledamo za @ CMP R1, #64 @@ -59,6 +64,17 @@ BEQ NEWLINE_PRVIC B POSODOBI_PRECISCENO +PRESLEDEK_KOMENTAR: +@ ce je naslednji znak @ ga ne zapisi +LDRB R3, [R0, #1] + +@ pogledamo za @ +CMP R3, #64 +BEQ PRECISCEVANJE + +STRB R1, [R2, #1]! +B PRECISCEVANJE + KOMENTAR: @ iteracija do \n znaka da vidimo in prepisemo komentar z nulami LDRB R1, [R0, #1]! @@ -110,4 +126,23 @@ POSODOBI_PRECISCENO: STRB R1, [R2, #1]! B PRECISCEVANJE +PREPISI_KODO: +ADR R0, izvorna_koda +ADR R2, izvorna_koda_pocisceno +SUB R0, R0, #1 +SUB R2, R2, #1 + +ZANKA_PREPIS: +LDRB R3, [R2, #1]! + +CMP R3, #0 +BEQ ZAKLJUCEK + +STRB R3, [R0, #1]! +B ZANKA_PREPIS + +ZAKLJUCEK: +MOV R3, #0 +STRB R3, [R0, #1]! + _end: b _end \ No newline at end of file