| [ 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| |