zlicz/counter.S

47 lines
925 B
ArmAsm
Raw Normal View History

2025-03-12 23:16:08 +00:00
.data
sentence: .ascii "My fbbirbst btbry\0" // \0 to bajt zerowy czyli koniec zdania w asm, C =
2025-03-13 13:18:47 +00:00
sentence2: .ascii "proba do dodawania sentence"
2025-02-20 10:57:53 +00:00
.text
.align 2
.globl _start
_start:
2025-03-12 23:16:08 +00:00
la t2, sentence
li t0, 0x62 //ascii "b"
2025-03-13 13:18:47 +00:00
la s2, sentence
li s3, 0x79 // ascii "o"
li s4, 0x00 // licznik o w sentence2
2025-03-12 23:16:08 +00:00
li t1, 0x00 // licznik b w sentence
loop:
2025-03-13 13:18:47 +00:00
lbu s5, 0(s2)
beq s5, zero, koniec
bne s5, s3, 1f
addi s4, s4, 1
2:
addi s2, s2, 1
j
2025-03-12 23:16:08 +00:00
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
2025-02-20 10:57:53 +00:00
2025-03-12 23:16:08 +00:00
koniec:
ebreak