2014-05-14 5 views
0

2.5를 문자열로 저장 한 다음 MIPS의 이진형 형식으로 변환 할 수 있습니까 ??어떻게 mips에서 2.5를 binary ieee 형식으로 변환 할 수 있습니까?

전 소수 부분으로 끝났습니다. 다음 코드를 사용하십시오.

.data 


promt: .asciiz "Enter decimal number:" 
output: .asciiz "The number in binary is:" 
    .text 
    .globl main 
main: 
    la $a0, promt #put address of the string in $a0 
    li $v0,4 
    syscall 

    li $v0, 5 # code for input 
    syscall 

##input is in $v0, we will have to save it in a saved register 

    move $t0,$v0 
    addi $t2, $0,2 #making $t2 '2' 
    addi$sp, $sp, -32 #makinf stack 
    addi $t5, $zero, 0 

loop: 
    div $t0,$t2 
    mflo $t0 # mov from hi 
    mfhi $t1 #mov from low 
    sw $t1, 0($sp) #copy $s1 to stack 
    addi $sp, $sp, 4 
    addi $t5, $t5, 1 
    bgtz $t0, loop # if s0 greater than zero than   
    addi $sp, $sp, -4 

printing: 
    li $v0,1 
    lw $a0, 0($sp) 
    syscall 
    addi $sp, $sp, -4 
    addi $t5, $t5, -1 
    bgtz $t5, printing 
    addi $sp, $sp, 32 
    li $v0, 10 
    syscall 

그러나 십진수 부분 다음에 붙어 있습니다.

감사합니다.

p.s : 나는

답변

0

는 다음 의사 코드를 고려 qtspim 사용하고 있습니다 :

pointPos := positionOfDecimalPointInString() 

sum := 0 
for i := pointPos - 1 downTo 0: 
    sum := sum * 10 
    sum := sum + string[i] - '0' 

fraction := 0  
for i := length(string) downTo pointPos + 1: 
    fraction := fraction + string[i] - '0' 
    fraction := fraction/10 

return sum + fraction 
+0

헤이 덕분에 많이! – zakia

+0

Np. 그것이 당신을 도운다면 대답을 받아 들여주십시오. –