【发布时间】:2022-01-09 07:43:12
【问题描述】:
我想编写一个程序来删除以非小写字母开头的任何字符串,例如“今天是美好的一天”将是今天的一天”,但我很难编写一个到目前为止的函数有一个程序,它只加载第一个字符和第二个字符进行比较,并在不进行任何处理的情况下循环用户输入。我不知道如何从这里移动,似乎无法找到一个合乎逻辑的方法来解决它
.data
input .space 30
prompt: .asciiz "Please enter a sentence "
.text
li $v0,4
li $a0,prompt
syscall
# Read user input
li $v0,8
li $a1,30
la $a0,input
syscall
li $t0,$a0
li $t1,0
loop:
slti $t2,$t1,30
li $t3,1
beq $t2,$t3,EXIT
lb $t4, 0($t0)
lb $t5, 1($t0)
next:
addi $t0,$t0,1
addi $t1,$t1,1
j loop
EXIT:
li $v0,10
syscall
【问题讨论】:
-
第一次学习汇编时,在汇编中制定算法非常困难。因此,我们的想法是通过将制定算法的关注点和为其制定汇编代码的关注点分开来使其更容易。这可以通过首先用 C 或其他语言制定算法来完成,通过运行它来确保它可以工作,然后翻译成汇编代码。这样,汇编代码中的错误只能来自相对较小的翻译错误,而不是算法问题。用您已经知道的语言制定算法要容易得多。
-
您的标题和文字与示例不符!您改为删除小写单词。