initial commit

This commit is contained in:
Martin Vrhovšek 2025-01-01 15:21:47 +01:00
parent 914e283ac0
commit 7ec1f85d51

66
program.s Normal file
View File

@ -0,0 +1,66 @@
.text
.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"
.align
izvorna_koda_pocisceno: .space 120
.align
tabela_oznak: .space 100
.align
.global _start
_start:
@ vas program napisite tu!
@ pocistimo registre, ker jih cpulator ne
mov r0, #0
mov r1, #0
mov r2, #0
mov r3, #0
mov r4, #0
ADR R0, izvorna_koda
ADR R2, izvorna_koda_pocisceno
SUB R0, R0, #1 @ da lahko pri iteraciji cez adreso zacnemo pri nicli
PRECISCEVANJE:
LDRB R1, [R0, #1]!
CMP R1, #0
BEQ _end
@ pogledamo za @
CMP R1, #64
BEQ KOMENTAR
@ pogledamo za novo vrstico
CMP R1, #10
BEQ NEWLINE
B POSODOBI_PRECISCENO
KOMENTAR:
@ iteracija do \n znaka da vidimo in prepisemo komentar z nulami
@ 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]!
B KOMENTAR
NEWLINE:
MOV R5, #1
B POSODOBI_PRECISCENO
POSODOBI_PRECISCENO:
STRB R1, [R2, #1]!
B PRECISCEVANJE
_end: b _end