| [ CnUnix ] in KIDS 글 쓴 이(By): parsec ( 먼 소 류 ) 날 짜 (Date): 2003년 2월 7일 금요일 오전 08시 10분 08초 제 목(Title): Re: [i*5/5] -- 일기보드에서... 애공... 수고해주셔서 감사합니다. ^^ (저도 ARM 어셈블러는 거의 본 일이 없고 매뉴얼 뒤져가며 보는 정도입니다.) 0x2000002는 data 를 출력하는 MSM5100의 port에 해당되고, ezUI_image2가 2바이트 데이타 타입에, 120x160 어레이니까 ezUI_image2[(j*120+i)*2]를 출력하는 것이죠. 일단 이부분은 이상이 없어보이는데, 그렇다면 다른 부분, 디스플레이 컨트롤러의 레지스터 값을 정의해주면서 기존의 변수나 정의와 충돌하는 부분이 있는지를 살펴봐야겠군요. 새로 생긴 에러는 새로 고친 부분에 있다는 경험법칙도 있고 하니... 재차 감사드립니다 ^^ P.S. [i]로 인덱싱한 버전의 어셈블러입니다. 앞부분이 [i*5/5]로 인덱싱한 버전과 차이가 있는데 이것도 함 봐주실 수 없을까요? (날로 먹으려 드는...^^) 얼핏 보기에 [i*5/5]버전에서는 곱셈과 나눗셈을 처리하기 위한 레지스터 변수를 더 확보해 놓은 듯한데 그 이상의 의미가 있을지... --------- ; generated by ARM C Compiler, ADS1.0.1 [Build 187] CODE32 AREA ||C$$codeseg||, CODE, READONLY ||x$codeseg|| DATA draw_image PROC LDR a1,|L1.424| STMDB sp!,{v1,v2,lr} FRAME SAVE r14, -4 FRAME SAVE r5, -8 FRAME SAVE r4, -12 FRAME ADDRESS r13, 12 LDRB a1,[a1,#0] CMP a1,#0 BEQ |L1.416| MOV ip,a4 MOV lr,#0x2000000 CMP ip,#0xe MOV a4,#8 MOV a2,#9 MOV a3,#0x77 MOV a1,#7 MOV v2,#0 LDR v1,|L1.428| BNE |L1.204| STRH a1,[lr,#0] STRH v2,[lr,#2] STRH a4,[lr,#0] STRH a3,[lr,#2] STRH a2,[lr,#0] STRH v2,[lr,#2] MOV a1,#0xa STRH a1,[lr,#0] MOV a1,#0xd STRH a1,[lr,#2] MOV a1,#5 STRH a1,[lr,#0] LDR v2,|L1.432| MOV a3,#0 |L1.116| RSB a2,a3,a3,LSL #4 ADD a2,v2,a2,LSL #4 MOV a1,#0 |L1.128| LDRB a4,[v1,#0] CMP a4,#1 MOVEQ a4,a1,LSL #1 BEQ |L1.168| CMP a4,#2 BNE |L1.176| MOV a4,a1,LSL #1 LDRH ip,[a2,a4] AND ip,ip,#3 STRH ip,[lr,#2] |L1.168| LDRH a4,[a2,a4] STRH a4,[lr,#2] |L1.176| ADD a1,a1,#1 CMP a1,#0x78 BLT |L1.128| ADD a3,a3,#1 CMP a3,#0xe BLT |L1.116| B |L1.408| |L1.204| MOV ip,lr STRH a1,[lr,#0] STRH v2,[ip,#2] STRH a4,[ip,#0] STRH a3,[ip,#2] STRH a2,[ip,#0] STRH v2,[ip,#2] MOV a1,#0xa STRH a1,[ip,#0] MOV a1,#0x9f STRH a1,[ip,#2] MOV a1,#5 STRH a1,[ip,#0] LDRB a1,[v1,#0] LDR v1,|L1.436| CMP a1,#1 MOVEQ a2,#0 BEQ |L1.296| CMP a1,#2 BNE |L1.408| MOV a3,#0 MOV lr,ip B |L1.348| |L1.296| RSB a3,a2,a2,LSL #4 ADD a4,v1,a3,LSL #4 MOV a1,#0 |L1.308| MOV a3,a1,LSL #1 LDRH a3,[a4,a3] STRH a3,[ip,#2] ADD a1,a1,#1 CMP a1,#0x78 BLT |L1.308| ADD a2,a2,#1 CMP a2,#0xa0 BLT |L1.296| B |L1.408| |L1.348| RSB a2,a3,a3,LSL #4 ADD a2,v1,a2,LSL #4 MOV a1,#0 |L1.360| MOV a4,a1,LSL #1 LDRH ip,[a2,a4] AND ip,ip,#3 STRH ip,[lr,#2] LDRH a4,[a2,a4] STRH a4,[lr,#2] ADD a1,a1,#1 CMP a1,#0x78 BLT |L1.360| ADD a3,a3,#1 CMP a3,#0xa0 BLT |L1.348| |L1.408| MOV a1,#0xff STRH a1,[lr,#0] |L1.416| LDMIA sp!,{v1,v2,lr} FRAME STATE REMEMBER FRAME RESTORE r4 FRAME RESTORE r5 FRAME RESTORE r14 FRAME ADDRESS r13, 0 BX lr |L1.424| FRAME STATE RESTORE DCD is_mainlcd_onoff |L1.428| DCD lcd_color_depth |L1.432| DCD ezUI_annunbar_image |L1.436| DCD ezUI_image2 KEEP draw_image ENDP ... May the source be with you! |