$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 대신 &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

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: