qz228712 发表于 2016-12-7 12:00:15

关于MIPS中怎么十进制转换2进制

请问这串代码哪里出错了?
如果我输入的integer 为 4
输出为0000 0000 0000 0000 0000 0000 0000 0010
但是4的二进制为100
我有点不懂这代码是哪里出错了



                .data
prompt:         .asciiz "please enter a number"
output:         .word 0:32
                .text
                .globl main
                la $t1, output+32
main:                la $a0, prompt
                li $v0, 4
                syscall
                li $v0, 5
                syscall
                move $s1, $v0
push_dig:        rem $3, $s1, 2
                jal push
                div $s1, $s1, 2
                bgtz $s1,push_dig
               
               
                la $t2, output
                la $t3, output+32
print_dig:        lbu $3,0($t2)
                add $t2, $t2, 1
                la $a0, ($3)
                li $v0, 1
                syscall
                beq $t2, $t3, over
                j print_dig
               
over:                 li $v0,10
                syscall       
push:                 sb $3,0($t1)
                addi $t1, $t1, -1
                jr $31

兰陵月 发表于 2016-12-9 12:37:30

你是在什么环境下,什么操作系统,什么编译器,建议都说一下,要不人家都是一头雾水~~{:10_266:}
页: [1]
查看完整版本: 关于MIPS中怎么十进制转换2进制