MIPS組合語言ascii碼轉整數的函式
阿新 • • 發佈:2019-02-02
在用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碼轉換出來的整數。