MIPS 兩個數的和(輸入,計算,輸出)


C語言

Void main()
{ 
   unsigned int num1,num2;    //16位
   scanf(“\nEnter the 1st number:%d”,&num1);
   scanf(“\nEnter the 2nd number:%d”,&num2);
   Printf(“The sum = %d”,num1+num2);

}

匯編

.data
CONTROL: .word32 0x10000
DATA: .word32 0x10008
TIPS1: .asciiz "Enter the 1st number:"
TIPS2: .asciiz "Enter the 2st number:"
TIPS3: .asciiz "The sum="
.text
main:
lwu r31,CONTROL(r0)#控制寄存器
lwu r30,DATA(r0)#變量寄存器

daddi r28,r0,TIPS1 #TIPS1地址給r28
daddi r29,r0,4 
sd r28,(r30) #變量寄存器得到變量地址
sd r29,(r31) #控制寄存器得到4(輸出字符串)

daddi r29,r0,8 ;
sd r29,(r31) #控制寄存器 8 (讀入)
ld r26,(r30) #得到內容給r26

daddi r28,r0,TIPS2 ;output TIPS2
daddi r29,r0,4
sd r28,(r30)
sd r29,(r31)

daddi r29,r0,8 ;read input value to r27
sd r29,(r31)
ld r27,(r30)

daddu r25,r26,r27  #r25=r26+r27

daddi r28,r0,TIPS3 ;output TIPS3
daddi r29,r0,4
sd r28,(r30)
sd r29,(r31)

daddi r29,r0,1 
sd r25,(r30)
sd r29,(r31) #控制寄存器 1 (輸出整型)

halt

MIPS基礎指令https://blog.csdn.net/flyingqr/article/details/7072977

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM