Bai 225

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

#Chuong trinh 22.

5: while - tim ky tu trong chuoi


#-----------------------------------
#Data segment
.data
#Cac dinh nghia bien
str_s: .asciiz "Computer Architecture CSE-HCMUT"
char_c: .byte 'm'
int_vtri: .word 10
#Cac cau nhac nhap du lieu
Nhap_kt: .asciiz "Nhap ky tu can tim: "
Nhac_co1: .asciiz "Tim thay ky tu "
Nhac_co2: .asciiz " tai vi tri "
Nhac_kh: .asciiz "Khong tim thay ky tu "
#-----------------------------------
#Code segment
.text
.globl main
#-----------------------------------
#Chuong trinh chinh
#-----------------------------------
main:
#Nhap (syscall)
#Nhap ky tu
la $a0,Nhap_kt
addi $v0,$zero,4
syscall
addi $v0,$zero,12
syscall
sb $v0,char_c
# in ky tu xuong dong
addi $a0,$zero,'\n'
addi $v0,$zero,11
syscall
#Xu ly
# a1=addr(s), t0=s[i], t1=c, t2=i(=0)
la $a1,str_s
lb $t1,char_c
addi $t2,$zero,0
# while (s[i]!=c && s[i]!='\0')
while:
lb $t0,0($a1)
beq $t0,$t1,endwhile
beq $t0,$zero,endwhile
# body
addi $t2,$t2,1
addi $a1,$a1,1
j while
# endwhile
endwhile:
#Xuat ket qua (syscall)
# if (s[i]==0)
beq $t0,$zero,khtithay
addi $t2,$t2,1
sw $t2,int_vtri
timthay:
la $a0,Nhac_co1
addi $v0,$zero,4
syscall
lb $a0,char_c
addi $v0,$zero,11
syscall
la $a0,Nhac_co2
addi $v0,$zero,4
syscall
lw $a0,int_vtri
addi $v0,$zero,1
syscall
j Kthuc
khtithay:
la $a0,Nhac_kh
addi $v0,$zero,4
syscall
lb $a0,char_c
addi $v0,$zero,11
syscall
#ket thuc chuong trinh (syscall)
Kthuc: addiu $v0,$zero,10
syscall
#-----------------------------------
#Cac chuong trinh con khac
#-----------------------------------

You might also like