在Mips Assembley中使用两个函数来查找单词

时间:2017-04-22 08:21:19

标签: mips

我需要帮助创建两个函数。第一个函数需要找到一个单词的长度。对于输入,该函数获取单词的第一个字符的地址并返回单词的长度(单词在数组中)。

第二个函数需要删除数组中字数多于平均值的单词(从数组中的所有字符开始计算),所以假设单词中的平均值是4个字符,所有单词都超过4个需要删除字符。

提前致谢!

更新:prntscr.com/ezjylq

1 个答案:

答案 0 :(得分:0)

我给你两个示例代码我希望这有帮助。

此代码查找任意ASCII字符串的长度

  

给定字符串:

     

“你好\ n” 个

     

<强>输出:

     

6

.data
    message: .asciiz "Hello\n"
.text

main:
    li $t1,0
    la $t0,message         #load message to t0

loop:
    lb   $a0,0($t0)        #load one byte of t0 to a0
    beqz $a0,done          #branch if a0 = 0
    addi $t0,$t0,1         #increament t0
    addi $t1,$t1,1         #increament the counter t1
    j     loop
done:

    li   $v0,1            #print an integer
    add  $a0, $0,$t1      #add the counter to a0
    syscall

    li   $v0,10           #exit program
    syscall

这是打印“Hello World”的功能。

.data
message: .asciiz "Hello World.\n"

.text
main:

jal displayMessage

li $v0,10       #exit function
syscall


displayMessage:
li $v0,4        #printing string 
la $a0,message  #save the message to argument $a0
syscall

jr $ra