CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): zilch (虛而待物)
날 짜 (Date): 2003년 2월  6일 목요일 오후 09시 46분 55초
제 목(Title): Re: [i*5/5] -- 일기보드에서...


왜 0x2000002 에 ezUI_image2[j * 240 + i * 2] 를 전송하는 건지는
잘 모르겠습니다만, 위의 코드를 보기에는 번잡할 것 같아서 노가다후
정리한 것을 올립니다.
(왜 내가 식후휴식으로 이런 걸 하고 있는거지..)

ARM 어셈블리를 한번도 해본 적이 없어서 좀 그렇군요. -_-;;
(오늘 처음 봤습니다..)

--------------------------------------------------------------
v2:j
v1:i      

296:
        RSB      a1,v2,v2,LSL #4 ; 
        ADD      v3,v5,a1,LSL #4 ; v3 = ezUI_image2 + j * 240
        MOV      v1,#0           ; i = 0;

308:    ADD      a2,v1,v1,LSL #2 ; a2 = i * 5
        MOV      a1,#5           
        BL       __rt_sdiv       ;   / 5
                                 ; (a1에는 몫, 즉 i가 들어 있을 듯)
        MOV      a1,a1,LSL #1    ; a1 *= 2; 
        LDRH     a1,[v3,a1]      ; a1.h = v3[a1] 
                                   (a1.h = ezUI_image2[j * 240 + i * 2])
        STRH     a1,[v4,#2]      ; v4[2] = a1.h  
                                   (0x2000002 위치에, 
                               ezUI_image2 + j * 240 + a1 에 있는 값을 전송함)

        ADD      v1,v1,#1        ; i++;
        CMP      v1,#0x78        ; 
        BLT      |L1.308|        ; if (i < 120) goto 308 
        ADD      v2,v2,#1        ; j++;
        CMP      v2,#0xa0        ; if (j < 160) goto 296
        BLT      |L1.296|
        B        |L1.420|
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.