歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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

具體思路:先定義一個隊列用來存儲數據,在實現中,通過移位操作可以獲知隊列的長度(移位操作相比除法更加快速),同時注意在隊列的存儲中是一個字存儲一個數據,但是移位和後面累加的操作中,隊列指針的指向地址每次加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