歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> ARM匯編程序---通過ARM匯編實現累加一個隊列的所有元素

ARM匯編程序---通過ARM匯編實現累加一個隊列的所有元素

日期:2017/3/1 10:06:10   编辑:Linux編程

具體思路:先定義一個隊列用來存儲數據,在實現中,通過移位操作可以獲知隊列的長度(移位操作相比除法更加快速),同時注意在隊列的存儲中是一個字存儲一個數據,但是移位和後面累加的操作中,隊列指針的指向地址每次加4還是加8主要看自己的機子是32位還是64位的機子。然後後面就是主要的實現部分了,大家應該都可以看懂。

ARM代碼如下:

ARRAY_SIZE EQU 40
AREA HOMEWORK4,CODE,READWRITE
ENTRY
START
MOV R0,#0
LDR R1,=ARRAY_DATA
MOV R2,#0
MOV R3,#0
LDR R4,=RESULT
MOV R5,#ARRAY_SIZE
ADD R5,R0,R5,LSR #2
INIT
ADD R0,R0,#1
STR R0,[R1]
ADD R1,R1,#4
CMP R0,R5
BNE INIT
BEQ SUM
SUM
LDR R3,[R1]
ADD R2,R2,R3
SUB R1,R1,#4
CMP R0,#0
SUB R0,R0,#1
BNE SUM
STR R2,[R4]
BEQ STOP
STOP
B STOP
ARRAY_DATA
SPACE ARRAY_SIZE
RESULT
DCD 0

END

Copyright © Linux教程網 All Rights Reserved