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