【问题标题】:MIPS Assembly creating character checkerMIPS 程序集创建字符检查器
【发布时间】:2013-03-03 01:39:23
【问题描述】:

我正在寻求有关如何从用户那里获取字符串然后输出每个字母在字符串中使用的次数的帮助。

伪代码 string "请输入字符串:" 获取字符串并保存到数组中, 检查字符值的ascii重复,然后在输出相应的字母时输出。

示例:Hello World

A: 
B:
C:
D: 1
E: 1
...
H: 1
...
W: 1

代码

.data
intro: .asciiz "Letter Checker Program" 
question: .asciiz "\nPlease enter a string for evaluation: "

string: .space 1024
alphabet: .space 26


.text 

main:
jal setup
#jal analyze
#jal results

li $v0, 10
syscall 

setup:
li $v0, 4   # outputing name and program information
la $a0, intro
syscall

li $v0, 4   # asksing for string input
la $a0, question
syscall 

li $v0, 8
la $a0, string
li $a1, 1024
syscall

jr $ra      # return

analyze:

loop:   

循环:

结果:

【问题讨论】:

  • 您可以发布您已经尝试过的内容吗?这样,我们可以提供更好的帮助。
  • .data intro: .asciiz "Letter Checker Program" question: .asciiz "\n请输入一个字符串进行评估:" 字符串:.space 1024 字母表:.space 26 .text main: jal setup # jal analyze #jal results li $v0, 10 syscall setup: li $v0, 4 # outputing name and program information la $a0, intro syscall li $v0, 4 # asksing for string input la $a0, question syscall li $v0, 8 la $a0, string li $a1, 1024 syscall jr $ra # return analyze: loop: #loop: #results:

标签: arrays string assembly mips


【解决方案1】:

你想做的是:

  1. 创建一些空间(26 * 4 字节)来存储结果并用 0 填充
  2. 遍历字符串中的每个字母并使用lb 加载
  3. 确定字母的数值,从而确定内存位置(步骤 1)。不要忘记大小写字母。
  4. 加载该内存位置(4 字节,使用lw),将值增加1,然后再次使用sw 存储
  5. 遇到 0(不是字母 '0')时停止
  6. 在分析中,循环遍历字母表中的每个字母,从第 1 步加载相应的内存位置,然后打印结果

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    • 2023-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    相关资源
    最近更新 更多