输入字符串
输入单个字符
在字符串中查找
(1)如果有就返回位置
$a0为字符串的位置
$a1为字符串的长度
(2)如果查完了都没有找到就输出失败
当输入?时结束
1 .data 2 3 message1: .asciiz " Success! Location: " 4 5 message2: .asciiz " Fail! " 6 7 buf: .space 100 8 9 space: .asciiz " " 10 11 .text 12 13 la $a0,buf #字符串起始地址 14 la $a1,100 #最大字节 15 16 li $v0,8 #输入字符串 17 syscall 18 move $t6,$a0 19 20 main: 21 22 li $v0,12 #输入字符 23 syscall 24 25 move $t3,$v0 26 move $t0,$t3 27 li $t1,63 28 beq $t0,$t1,exit 29 30 li $t0,0 31 32 addi $t5,$a1,-1 33 34 loop: 35 36 bgt $t0,$t5,fail 37 add $t2,$t6,$t0 #循环查找字符串中的字符当计数器大于字节数时失败 38 lb $t1,($t2) 39 beq $t1,$t3,success 40 addi $t0,$t0,1 41 j loop 42 43 fail: 44 45 li $v0,4 46 la $a0,message2 #打印失败信息 47 syscall 48 li $v0,4 49 la $a0,space 50 syscall 51 li $v0,1 52 j main 53 54 success: 55 56 addi $t0,$t0,1 #打印成功信息 57 li $v0,4 58 la $a0,message1 59 syscall 60 li $v0,1 61 move $a0,$t0 62 syscall 63 li $v0,4 64 la $a0,space 65 syscall 66 #li $t0,0 67 j main 68 69 exit: 70 71 li $v0,10 72 syscall