Skip to main content

10.4.8. 버퍼 변수 (BUFV)

10.4.8. 버퍼 변수 (BUFV)

 

바이너리 데이터를 데이터 형(type)에 무관하게 보관할 수 있는 버퍼입니다. 64kbyte의 크기입니다. 인수(index) 0부터 시작합니다. (0-based)

멀티태스크를 사용할 경우, 각 태스크는 독립적인 BUFV를 갖게 됩니다.

 

BUFV0 ~ BUFV65535

 

혹은

 

BUFV[0] ~ BUFV[65535]

 

버퍼 내의 특정 위치의 바이너리를 원하는 type으로 다룰 때는 type 속성을 사용합니다.

 

사용가능한 type 속성의 종류는 아래와 같습니다.

 

endian

Property

type

Big endian

S1

부호 있는 정수 (1byte)

S2

부호 있는 정수 (2byte)

S4

부호 있는 정수 (4byte)

U1

부호 없는 정수 (1byte)

U2

부호 없는 정수 (2byte)

U4

부호 없는 정수 (4byte)

F4

단정도 실수 (4byte)

F8

배정도 실수 (8byte)

Little endian

s1

부호 있는 정수 (1byte)

s2

부호 있는 정수 (2byte)

s4

부호 있는 정수 (4byte)

u1

부호 없는 정수 (1byte)

u2

부호 없는 정수 (2byte)

u4

부호 없는 정수 (4byte)

f4

단정도 실수 (4byte)

f8

배정도 실수 (8byte)

 

1)

BUFV내의 옵셋 24의 위치부터 4byte little endian의 정수값으로 해석하여 g_iY라는 변수에 대입한다고 하면 아래와 같은 대입문를 실행하면 됩니다.

 

g_iY = BUFV[24].s4

 

.s4 type 속성입니다. s signed integer, 4 4byte를 의미합니다. s가 소문자이므로 little endian으로 해석합니다.

 

2)

BUFV내의 옵셋 1500의 위치부터 8byte big endian 배정도 실수 형식으로 연산 결과를 저장한다고 하면 아래와 같은 대입문를 실행하면 됩니다.

 

BUFV[1500].f8=(V5!+140.8)/2.5