雙精度浮點一維向量的加法(彙編實現)
阿新 • • 發佈:2018-11-29
.data Vector1: .double 1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8,9.9,10.10,11.11,12.12,13.13,14.14,15.15,16.16 ;向量1 Vector2: .double 0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,0.10,0.11,0.12,0.13,0.14,0.15,0.16 ;向量2 print: .asciiz "result is: ";字串”result is:” style: .asciiz "%f ";輸出格式 .align 2 str: .word style address: .space 8 ;指令位於text指標所指向的空間 .text .global main main: addi r1,r0,print sw address,r1;儲存字,儲存a的首地址 addi r14,r0,address trap 5 ;輸出字串”result is: ” addi r10,r0,0 ;r10=0 addi r8,r0,20 ;r8=20,即為向量的長度 loop: ld f2, Vector1(r10) ld f4, Vector2(r10) addd f2,f2,f4 ;將向量1與向量2對應項相加,儲存在f2 sd address,f2 ;儲存雙精度浮點數2 addi r14,r0,str trap 5 ;輸出內容 addi r10,r10,8 ;取Vector1與Vector2下一項 subi r8,r8,1 ;迴圈次數減一 bnez r8,loop ;若r8!=0,返回到loop trap 0 ;結束程式