我试图将给定整数的数字打印成单词。例:输入:123,输出:一二三

时间:2018-02-27 22:54:27

标签: mips32

。数据 arr:.space 40 零:.asciiz"零" 一个:.asciiz" One" 二:.asciiz"两个" 三:.asciiz"三" 四:.asciiz"四" 五:.asciiz"五" 六:.asciiz"六" 七:.asciiz" Seven" 八:.asciiz"八" 九:.asciiz" Nine" 提示:.asciiz"输入一个数字:" 结束:.asciiz" \ n程序结束" 无效:.asciiz" \ n无效条目"

----------------------------------------------- -

的.text

在数组

中存储数字串

la $ a1,arr la $ s0,零 sw $ s0,0($ a1) la $ s0,一个 sw $ s0,4($ a1) la $ s0,二 sw $ s0,8($ a1) la $ s0,三 sw $ s0,12($ a1) la $ s0,四 sw $ s0,16($ a1) la $ s0,五 sw $ s0,20($ a1) la $ s0,六 sw $ s0,24($ a1) la $ s0,七 sw $ s0,28($ a1) la $ s0,八 sw $ s0,32($ a1) la $ s0,九 sw $ s0,36($ a1)

----------------------------------------------- -

addi $ t4,$ 0,0#变量用于存储反转数字 li $ v0,4 la $ a0,提示 系统调用

获取数字

li $ v0,5 系统调用

存储号码

addi $ t0,$ v0,0 blt $ t0,$ zero,IE

拨打号码

反向: beqz $ t0,继续 和$ t1,$ t0,9#应用模数运算得到数字的最后一位数 divu $ t0,$ t0,10#删除号码的最后一位数字 mul $ t4,$ t4,10#reverse = reverse * 10 添加$ t4,$ t4,$ t1#添加最后一位数 j反向

----------------------------------------------- -

继续: 和$ t3,$ t4,9#应用模数运算得到数字的最后一位数 la $ a0,arr($ t3) li $ v0,4 系统调用 div $ t4,$ t4,10 beqz $ t4,退出 j继续

----------------------------------------------- -

IE: li $ v0,4 la $ a0,无效 系统调用

----------------------------------------------- -

退出: li $ v0,4 la $ a0,结束 系统调用

----------------------------------------------- -

有人可以指出错误吗?

0 个答案:

没有答案