You are on page 1of 3

Program 12

Object: Write a program to reverse a string.


.data .align 1 String : .space 14 #*change msg1 : .aasciiz Please give a character : msg2 : .asciiz \n| msg3: .asciiz String is : msg4: .asciiz \nString Reversed is: .text main: addi $s0,$zero,13 #*change addi $t0,$zero,0 in: la $a0,msg2 li $v0,4 syscall li $v0,4 la $a0,msg1 syscall li $v0,12 syscall add $t1,$v0,$zero sb $t1,$v0,$zero sb $t1,String9$t0) addi $t0,$t0,1 slt $t1,$s0,$t0 beq $t1,$zero,in sb $zero,String($t00) #ending zero la $a0,msg2 li $v0,4 syscall la $a0,msg2 li $v0,4 syscall la $a0,msg3 li $v0,4 syscall la $a0,String li $v0,4

syscall addi $a1,$zero,14 #pass length - *change jal stringreverse #reverse li $v0,4 syscall la $a0,msg4 li $v0,4 syscall la $a0, String li $v0,4 syscall li $v0,10 syscall stringreverse: add $t0,$a0, $zero #beginning address add $t1,$zero,$zero #i=0 addi $t2,$a1,-1 #j=length-1 loop: add $t2,$t0,$t1 lb $t4,0($t3) #lb String[i] add $t5,$t0,$t2 lb $t6,0($t5) #String[j] = String [i] sb $t6,0($t3) #String[i]=String [j] addi $t1,$t1,1 #i++ addi $t2,$t2,-1 #j-#if >=j break - $t1<$t2 slt $t6,loop jr $ra #i-0;j=length-1; #do { # x = str[i] str[i] = str[j] #str[j] = x # i++;j-# } while(!j<i))

Program 11
Object: Write a program to count character in a string.
.data str: .asciiz "this is a string" .text .globl main main: li $s0, la $s1,str loop: lb $s2,0($s1) beqz $s2,exitloop addi $s0,$s0,1 addi $s1,$s1,1 j loop exitloop: li $v0,1 syscall li $v0,10 syscall

You might also like