$REG
우리는 매크로를 사용하면서 변수라는 것을 많이 사용하였다. 특히 $ITER을 사용하면서 ELEMENT라는 변수를 사용하였는데 {…} 안에서 현재 적용되고 있는 ELEMENT의 값이 얼마인지가 궁금하였을 것이다. 그럼 이 변수가 가지고 있는 현재의 값을 알아볼 수 있는 방법은 없을까?
그렇다. 바로 $REG 매크로이다. $ITER의 매크로에서 {…}의 마지막에 $REG ELEMENT라고 추가해 보자.
SYSTEM NEW
RESET
PI=3.141592
$ITER ELEMENT -(PI) (PI) –3 RESULT
{
RESULT=SIN(ELEMENT)
$REG ELEMENT
}
DISPLAY ITER
GRAPH
RETURN
그러면 아래와 같이 Command Output Window에 현재 적용되는 ELEMENT의 값을 확인할 수 있을 것이다. 아래에 ELEMENT 값을 굵은 글자로 표시하였다.
— SYSTEM NEW
— RESET
— PI=3.141592
— $ITER ELEMENT -(PI) (PI) -3 RESULT
Opening NEW distribution file 10: C:\_ASAP Design\iter.dis
–
— {
— RESULT=SIN(ELEMENT)
— $REG ELEMENT
X~: ELEMENT -3.141592
— }
— {
— RESULT=SIN(ELEMENT)
— $REG ELEMENT
X~: ELEMENT 0
— }
— {
— RESULT=SIN(ELEMENT)
— $REG ELEMENT
X~: ELEMENT 3.141592
— }
— {
— RESULT=SIN(ELEMENT)
— $REG ELEMENT
X~: ELEMENT -3.141592
— }
— DISPLAY ITER
Opening OLD distribution file 10: C:\_ASAP Design\iter.dis
File header:
1 0.0000000E+00 RESULT
-0.5000000 0.5000000 1
ELEMENT -3.141592 3.141592 -3
Statistics on 3 by 1 data set:
RESULT Location ELEMENT
Minimum -0.6535898E-06 1 1 -3.141592 0.000000
Maximum 0.6535898E-06 3 1 3.141592 0.000000
Average 0.000000 3 1 3.141592 0.000000
RMS var 0.5336538E-06 0 0 1.480961 0.000000
Integral = 0.000000
— GRAPH
— RETURN
결과를 보니 이상한 것이 눈에 들어온다. ELEMENT 앞에 X~: 라는 표시가 있다. 우리는 ELEME-NT 라는 이름으로 변수를 만들었는데, ASAP이 보기에는 이름이 너무 길어 보이는 것 같다. 그래서 ASAP은 이 이름을 내부적으로 다른 이름을 만들어 사용하게 된다. 즉, 사용자가 지정한 이름을 user’s designation이라고 하고, ASAP이 내부적으로 사용하는 이름을 interanl designation이라고 한다. 이름이 간단하면 사용자의 이름을 사용하고, 좀 길다 싶으면 내부적인 이름을 부여해 준다. 결국, 위의 프로그램은 ELEMENT 라는 이름을 X~ 으로 변경하여 사용한다는 뜻이다. 그런데, 사실 우리는 ASAP이 어떤 이름을 사용하는지는 별로 궁금하지가 않다. 그래서 interanl designat-ion을 표시하지 않고 싶다. 이를 때 $REG 대신 ®를 사용하면 된다. 그러면 interanl designat-ion을 보여주지 않는다. 좀 더 간단한 프로그램을 하나 만들어 보자.
SYSTEM NEW
RESET
A=1
B1=2
C11=3
AB=4
ABCD=5
ABCDE=6
$REG
RETURN
변수 이름을 길이별로 만들어 보았다. 이 결과는 다음과 같다. 문자한개 와 문자한개+숫자한개 정도까지만 변경이 없으며 나머지는 interanl designation을 만드는 것을 알 수 있다.
— $REG
A : A 1
B1: B1 2
W~: ABCDE 6
X~: ABCD 5
Y~: AB 4
Z~: C11 3
— RETURN
마지막으로, 값을 표시할 때 값의 의미를 먼저 설명하고 값을 표시하게 할 수도 있다. $REG 변수명 ‘원하는 설명’ 의 형식으로 작은따음표 안에 변수에 대한 설명을 추가하면 된다.
SYSTEM NEW
RESET
PI=3.14
$REG PI ‘Value of PI :’
RETURN
이렇게 하면, 아래와 같이 설명이 먼저 나오고 값이 표시된다. 대신, user’s designation이나 interanl designation은 표시되지 않는다. 값이 여러개일 경우는 자동 줄바꿈까지 해 주기 때문에 아주 편하게 값을 확인할 수 있다.
— SYSTEM NEW
–
— RESET
— PI=3.14
— $REG PI ‘Value of PI:’
Value of PI : 3.14
— RETURN