按Enter继续程序(MIPS)

时间:2018-04-08 19:49:03

标签: assembly mips enter mars-simulator

所以我用mips制作了一个简单的基于RPG文本的冒险游戏(它大约有2200行代码,与我的问题无关,所以我不会发布它)。我想格式化它,所以在打印一行文本后,用户必须按回车键才能显示下一行(也就是继续下一条指令),类似于视频游戏文本框的工作方式。有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我在一个小程序中添加了类似的内容。我使用了提示,然后阅读了一个字符。我将此循环放到用户按ASCII码10的Enter键之前。有些帖子将ENTER键称为ASCII 13(回车),但在Mac上为10。无论哪种方式,您都可以将read char显示为int(系统代码1)以查看得到的内容(10或13)。

这是我使用的代码段:

.data
    contPrompt: .asciiz "Press ENTER to continue...\n"
    newLine: .asciiz "\n"



.text

# your other code goes here

    jal readEnter

# next instruction in your code

....

readEnter: # Ask user to press ENTER to continue
    li $v0, 4
    la $a0, contPrompt
    syscall
    li $v0, 12 # sys code for readchar
    syscall

    move $t0, $v0

    li $v0, 4
    la $a0, newLine
    syscall

    bne $t0, 10, readEnter # repeat if not ENTER

    jr $ra # return to the calling subroutine

我不确定您是否正在寻找更复杂的东西,但这对我而言效果很好。