arm 어셈블리 입문 프로그램 - 순환 쓰기 후 누적

메모리 주소 0X3000에서 시작하는 100자 메모리 유닛에 0X10000001---0X10000064를 입력하여 각 문자 유닛에 64비트를 누적하여 그 결과 남은 메모리 유닛으로 보냅니다.
		AREA test,CODE,READONLY
        ENTRY
        CODE32
START
        MOV R0,#0X3000
        MOV R1,#0X10000001
        MOV R2,#100
		MOV R3,#0
		MOV R4,#0
		MOV R5,#0 
       
LOOP_1
        STR R1,[R0],#4
        ADD R1,R1,#1
        SUBS R2,R2,#1
        CMP R2,#0
        BNE LOOP_1
        
        MOV R5,R0
        MOV R0,#0X3000
        MOV R2,#100
LOOP_2
        LDR R1,[R0],#4
        ADDS R3,R1,R3
        BVC VC
        ADD R4,R4,#1
VC               	
        SUBS R2,R2,#1
        CMP R2,#0
        BNE LOOP_2
        
        STR R3,[R5],#4
        STR R4,[R5]
STOP
        B STOP
        END


R3은 누적된 결과의 낮은 비트이고, R4는 누적된 결과의 높은 비트이다.

좋은 웹페이지 즐겨찾기