[Coursera]计算机组成_Week3_Mips_Q2

本文介绍了一个简单的字符查找程序,使用汇编语言实现。程序首先读取一段字符串,然后逐个字符地进行比较,若找到目标字符则输出其位置,否则输出未找到的信息。此程序展示了基本的汇编指令用法及流程控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

.data                  #数据段
sentence:.byte 0:100        
size: .word  100
found:.asciiz "\nSuccess! Location: "
notfound:.asciiz "\nFail!\n"

.text                  #代码段
li $s1,'\n'
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,'\n'	#输出回车
	li $v0,11
	syscall
	
	j read
	
failure:		#没有找到该字符
	la $a0,notfound
	li $v0,4
	syscall
	j read
	
end:			#结束程序
li $v0,10
syscall

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值