embeded/8051
8051에서는 배열 주소 연산은 최대한 줄이도록!
구차니
2009. 4. 21. 17:36
if(tempUnicode == 0x00E0) output[out_idx] = 0x80; else if(tempUnicode == 0x00E0) output[out_idx] = 0x80; else if(tempUnicode == 0x00E0) output[out_idx] = 0x80; ... else if(tempUnicode == 0x00E0) output[out_idx] = 0x80; // 대략 128개
이녀석을 컴파일 하면
Program Size: data=189.7 xdata=0 code=10418
if(tempUnicode == 0x00E0) res = 0x80; else if(tempUnicode == 0x00E0) res = 0x80; else if(tempUnicode == 0x00E0) res = 0x80; ... else if(tempUnicode == 0x00E0) res = 0x80; // 대략 128개
이녀석을 컴파일 하면
Program Size: data=187.7 xdata=0 code=9518
별거 아닌 코드이지만, 900byte 차이가 난다.
결론. 8051에서는 배열사용을 자제하자(switch / if-else 문처럼 한번의 액션에 분기되는 거라면)