簡體   English   中英

ARM匯編器中可變大小的int矩陣

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM