1、题目是这样的:要求输入一个短字符串,与事先存好的一个长字符串比较,看输入字符串是否为该字符串的子串。
2、要点:字符串的存储方式。MIPS中字符串按照byte方式存储,字符串的结束标志是00,所以判断一个字符串结束是可以利用$zero来判断。但是本题比较特殊,因为主串结尾处没有加'\n'(0a),而从键盘输入的子串最后面必然会有'\n'。如果把$zero当做循环结束的标志的话会造成子串永远不会匹配,所以本题应该用0a来当做子串的结束标记。
3、程序:
.data
names: .asciiz "abedc john jack niu jop mike judy belle lucy wang"
tip: .asciiz "please input name:\n"
tip1: .asciiz "find it!\n"
tip2: .asciiz "not find!\n"
key: .space 60
.text
main:
li $v0, 4
la $a0, tip