1. RL78 패밀리 용 컴파일러 언어 사양

    제 1 장과 제 2 장 목적

제 1 장과 제 2 장의 목표

 

C 언어의 문법은 ANSI에 의해 국제 표준 규격이 정해져 있습니다 만, 그것은 문법의 세부 사항까지 규정하고있는 것이 아니라 일부는 처리 계 정의 항목이 있습니다.

그 대표적인 예는 그림에있는대로, char 형의 부호와 int 형의 크기입니다. 이들은 사용하는 MCU 및 개발 환경에 따라 변화합니다.

그래서 제 2 장에서는 RL78 패밀리 용 컴파일러의 처리 계 정의 항목의 취급을 소개합니다.

또한 C 언어를 기본 용도의 프로그램 개발 언어로 사용하는 경우, 문법 규정 외의 품목이다 번지 결정 방법 및 재설정에서 main 함수를 시작할 때까지 시작 단계를 이해 해야 합니다.

이들도 사용하는 MCU와 개발 환경에 따라 변화하기 때문에, 제 2 장에서는 문법 규정 외의 항목에 대한 취급을 소개합니다.

 

식별자

사양번

항목

RL78 패밀리 용 컴파일러 사양

1

외부 결합되지 않는 식별자 (내부 이름)의 유효 문자

249 문자까지 유효합니다.

2

외부 조인되는 식별자 (외부 이름)의 유효 문자

249 문자까지 유효합니다.

3

외부 조인되는 식별자 (외부 이름)의 대소 문자 구분

대소 문자를 구별합니다.

 

 

문자의

사양번

항목

RL78 패밀리 용 컴파일러 사양

1

소스 문자 세트 및 실행 환경 문자 집합의 요소

모두 ASCII 문자 집합입니다. 그러나 코멘트는 한자 코드를 작성할 수 있습니다.

2

char 값

signed char 형과 같은 범위를가집니다. *

주】 *-qu 옵션을 지정하여 unsigned char 형과 같은 범위를가집니다

 

식별자의 사양과 문자 사양

 

RL78 패밀리 용 컴파일러에서는 문자는 ASCII 코드이며, 주석이면 한자 코드를 작성할 수 있습니다.

식별자는 내부 이름 · 외부 이름 모두 약 249 문자까지 유효하며, 대소 문자를 구분하여 처리합니다.

그리고 이동성의 관점에서 문제가되는 항목은 char 형의 부호입니다. RL78 패밀리 용 컴파일러에서는 부호 지정되지 않은 char 형은 signed char 형과 같은 범위를 가집니다.

이것은 부호 지정되지 않은 char 형을 문자 상수를 저장하는 데에만 사용하고 있으면 문제가 발생하지 않지만, 다음과 같이 수치 계산에 사용하는 경우는 주의가 필요합니다.

 

 

char a; a = 200; if( a == 200 )

printf("TRUE");

else

printf("FALSE"); // RL78

 

 

 


정수와 그 값의 범위

값의 범위

데이터 크기

char (signedchar 형)*

-128 ~ 127

바이트

signed char

-128 ~ 127

바이트

unsigned char

0 ~ 255

바이트

short

-32768 ~ 32767

2 바이트

unsigned short

0 ~ 65535

2 바이트

int

-32768 ~ 32767

2 바이트

unsigned int

0 ~ 65535

2 바이트

long

-2147483648 ~ 2147483647

4 바이트

unsigned long

0 ~ 4294967295

4 바이트

【주】 *-qu 옵션을 지정하여 값의 범위는 0 ~ 255입니다

 

 

연산 동작의 영향

항 번

항목

RL78 패밀리 용 컴파일러 사양

1

정수 값이 더 짧은 크기의 부호 정수 또는 부호없는 정수를 동일한 크기의 부호 정수로 변환했을 때의 값 (결과 값이 대상 형식으로 표현할 수없는 경우)

 signed short a = 0x12345678;

 

정수 값의 하위 바이트가 변환 된 값입니다.

 

 a의 값은 0x5678이다.

2

부호있는 정수에 대한 비트 연산의 결과

signed short a = 32767 / / 0x7FFF

signed short b = -32768; / / 0x8000

a | b / / 평가 결과?

 

부호의 값이됩니다. 평가 결과는 -1이된다.

 

 

정확하게는 int 형 -1이된다.

3

정수 나누기의 나머지의 부호

-5 % 2 / / 평가 결과?

5 % -2 / / 평가 결과?

 

피제수의 부호와 같은 부호입니다.

평가 결과는 -1이된다.

평가 결과는 1이된다.

4

부의 값 부호 스칼라의 오른쪽 시프트의 결과

signed short a = -4 / / 0xFFFC

 a >> 1 ;/ / 평가 결과?

 

부호 비트를 유지합니다.

 

평가 결과는 -2가된다.

 

정수와 그 값의 범위 정수형 값의 범위에 관해서는 이전 페이지에서 소개 한 부호 지정되지 않은 char 형의 부호와 함께 int와 unsigned int 형의 크기에주의를 기울여야합니다.

RL78 패밀리 용 컴파일러는 int 및 unsigned int 형을 16 비트의 2 바이트로 취급합니다.

 

long sec;

printf(" One day is %ld sec.", sec = 24 * 60 * 60 ); // V850,RX : One day is 86400 sec.

// RL78,R8C: One day is 20864 sec.

 

 

                   

 

부동소수점 형의 내부 표현 RL78 패밀리 용 컴파일러에서 부동 소수점의 내부 표현은 IEEE의 규격이며, 모든 부동 소수점 형식을 단정 형식 (32 비트)에서 취급합니다.

 

 

 

'공부 > RL78' 카테고리의 다른 글

RL78 컴파일러 사용 3  (0) 2013.04.05
RL78 컴파일러 사용 2  (0) 2013.04.05
RL78 컴파일러  (0) 2013.04.05
일본 RL78 세미나 자료  (0) 2013.04.05
RL78 관련 일본 블러그  (0) 2013.03.20

+ Recent posts