1. 程式人生 > >MIPS組合語言ascii碼轉整數的函式

MIPS組合語言ascii碼轉整數的函式

在用MIPS組合語言進行程式設計的時候,有時候需要將ascii碼轉成整數進行操作,比如讀取命令列引數的時候。這裡給大家提供一個現成的函式供大家使用。

上程式碼!

toInt:      li    $t1, 0            #t1:offset, t2:true address, t3:10
            li    $t3, 10
            li    $t5, 0            #the sum
            li    $t6, 0            #the flag of positive
            lb    $t4, ($t0)
            bne   $t4, '-', positive
            li    $t6, 1            #the flag of negative
            addi  $t1, $t1, 1       #update the offset
            add   $t2, $t1, $t0     #get true address
            lb    $t4, ($t2)
positive:   addi  $t4, $t4, -48     #get the number in int
            mult  $t5, $t3
            mflo  $t5               #t5 = t5*10
            add   $t5, $t5, $t4
            addi  $t1, $t1, 1       #update the offset
            add   $t2, $t1, $t0     #get true address
            lb    $t4, ($t2)
            bnez  $t4, positive
            nop
            beqz  $t6, saveInt
            nop
            neg   $t5, $t5
saveInt:    move  $t0, $t5
            jr    $ra
            nop

使用方法就是將ascii碼所在的地址存入$t0中,然後呼叫這個函式。最終$t0中存放的將會是這些ascii碼轉換出來的整數。