[Coursera]计算机组成_Week3_Mips_Q2

2019-04-14 16:57发布

.data #数据段 sentence:.byte 0:100 size: .word 100 found:.asciiz " Success! Location: " notfound:.asciiz " Fail! " .text #代码段 li $s1,' ' la $a0,sentence la $a1,size lw $a1,0($a1) li $v0,8 #读入字符串,存在a0所指的地址处,长度存在a1 syscall read: li $v0,12 #读入字符,存在v0所指的地址处 syscall beq $v0,'?' end #输入终止符后退出 li $t1,0 lb $s3,sentence($t1) loop: addi $t1,$t1,1 beq $v0,$s3,success #如果找到了,输出 lb $s3,sentence($t1) beq $s1,$s3,failure j loop success: #找到了该字符 #xxxxxxxxxx la $a0,found li $v0,4 syscall move $a0,$t1 #输出当前所在位置 li $v0,1 syscall li $a0,' ' #输出回车 li $v0,11 syscall j read failure: #没有找到该字符 la $a0,notfound li $v0,4 syscall j read end: #结束程序 li $v0,10 syscall