如何在MIPS汇编语言编程中打印数字的前几位? [英] How to print the first digits of a number in MIPS Assembly Programming?

查看:14
本文介绍了如何在MIPS汇编语言编程中打印数字的前几位?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是MIPS汇编语言编程的初学者,我想知道读入数字后如何打印数字的第一位。

.data
number_1: .word


.text
#read in first number
li $v0, 5
syscall
sw $v0, number_1

#print first digit
li $v0, 1
lw $a0, number_1
syscall

#end program
li $v0, 10
syscall

例如,如果我输入590,我将只想打印‘5’。此外,如何分别打印下两个数字?

使用上面的代码,它只打印我输入的整数:590 我尝试了lb,而不是lw,但它输出的是‘78’,我猜这个数字是十六进制或其他基数。

提前谢谢

推荐答案

对于您拥有的号码,您需要分别获取第二位和第三位的数字mod 10或mod 100。 模数是你的下一个数字,你可以重复这个过程,直到除法的结果是0。假设您不使用浮点数。

我对MIPS汇编的建议是始终有一个高级语言(如C)的通用解决方案,这里有一个类似于我上面概述的解决方案:

int n = 590 ;
while( n >= 10 )
{
    printf( "%d
", n % 10 ) ;
    n = n / 10 ;
}
printf( "%d
", n ) ;

这篇关于如何在MIPS汇编语言编程中打印数字的前几位?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆