zlicz/counter.S
2025-03-13 13:18:47 +00:00

47 lines
925 B
ArmAsm

.data
sentence: .ascii "My fbbirbst btbry\0" // \0 to bajt zerowy czyli koniec zdania w asm, C =
sentence2: .ascii "proba do dodawania sentence"
.text
.align 2
.globl _start
_start:
la t2, sentence
li t0, 0x62 //ascii "b"
la s2, sentence
li s3, 0x79 // ascii "o"
li s4, 0x00 // licznik o w sentence2
li t1, 0x00 // licznik b w sentence
loop:
lbu s5, 0(s2)
beq s5, zero, koniec
bne s5, s3, 1f
addi s4, s4, 1
2:
addi s2, s2, 1
j
lbu t3, 0(t2) // ladujemy do rejestra t3 adres 1 litery sentece
beq t3, zero, koniec # jezeli adres w sentence dojdzie do \0 czyli do konca programm sie skonczy
bne t3, t0, 1f // jezeli adres liczby nie jest "b" to prechodzi do 1f pomijanie przyrostu licznika.
addi t1, t1, 1 // dodajemy 1 do licznika liter b
1:
addi t2, t2, 1 // Tutaj wskaźnik zostanie przesunięty do następnego znaku w linii
j loop // skok do poczatku petli
koniec:
ebreak