【问题标题】:How to get the decimal number from ASCII code in MIPS?如何从 MIPS 中的 ASCII 码中获取十进制数?
【发布时间】:2019-03-29 06:50:12
【问题描述】:

我想读一个字符,我基本上使用这个代码:

main:
li   $v0, 12       
syscall         

li $v0, 10
syscall

那么,ASCII 码作为 HEX 数字保存在 $v0 中,但是有什么方法可以得到这个对应的十进制 ASCII 码吗?

【问题讨论】:

    标签: assembly ascii mips


    【解决方案1】:

    Hex 是二进制整数的文本序列化格式。 $v0 中的值是 32 位二进制数,不是十六进制或十进制。

    例如32(十进制)和0x20(十六进制)是描述相同位模式(0b0000...00100000)值的两种方式。所有这些都是表示空格 ASCII 码的不同方式,就像你从 li $v0, ' ' 得到的一样。

    您可以使用调试器将其查看为十六进制或十进制,如果您在 MARS 模拟器上运行 MIPS 代码,则可以使用不同的 MARS 打印数字系统调用。 (SPIM 只有print integer 系统调用,但 MARS 有用于以十六进制打印、以十进制打印和以二进制打印的系统调用。http://courses.missouristate.edu/kenvollmar/mars/help/syscallhelp.html

    move  $a0, $v0     # $a0 = integer to print 
    li    $v0, 1       # $v0 = system-call number
    syscall            # print_integer($a0)  in decimal
    

    【讨论】:

      猜你喜欢
      • 2013-12-08
      • 1970-01-01
      • 2017-04-05
      • 2011-07-12
      • 1970-01-01
      • 2021-02-21
      • 2015-12-29
      • 1970-01-01
      • 2023-01-31
      相关资源
      最近更新 更多