[英]variable sized int matrix in ARM assembler
我目前正在嘗試在ARM匯編器中實現矩陣乘法。 我已經閱讀了一些有關匯編器中矩陣計算的教程,它們都在3x3或4x4浮點矩陣上使用NEON指令。 但這與我想做的完全不同。 我有兩個對稱的int矩陣,因此這兩個矩陣的行數和列數相同,並且我的匯編函數將矩陣的大小作為參數,因此我無法像本教程中那樣僅為3x3或4x4矩陣編寫matMul函數。
所以我的問題是最好和最簡單的方法是什么? NEON指令甚至可以與100x100甚至更大的矩陣一起使用嗎? 而且單精度和雙精度寄存器都是不必要的,因為我只有整數。
另一個問題是,我幾乎完全不熟悉ARM匯編程序,因此我不太了解NEON指令。
靠近主要過程
MOV DI,OFFSET M_RESULT
MOV SI,OFFSET M_A
MOV BX,OFFSET M_B
BACK1:MOV CH,N SUB CH,LINE MOV COLUMN,N
BACK2:
MOV AL,CH
MOV X,N
MUL X
ADD SI,AX
MOV AH,0
MOV AL,P
ADD BX,AX
MOV COUNTER,N
MOV TEMP,0
BACK3:
MOV AL,[SI]
MUL [BX]
ADD TEMP,AX
INC SI
ADD BX,N
DEC COUNTER
JNZ BACK3
MOV AX,TEMP
MOV [DI],AX
ADD DI,2
MOV SI,OFFSET M_A
MOV BX,OFFSET M_B
INC P
DEC COLUMN JNZ BACK2
MOV P,0
DEC LINE JNZ BACK1
;
MOV AX,4C00H ;8- End of
INT 21H ;9- processing
主要ENDP; 程序結束CODESG ENDS; 段END START的結束; 程序結束;作者:Mojtaba Alizadeh
INT 21H; 9-處理MAIN ENDP; 程序結束CODESG ENDS; 段末END START
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.