• Keine Ergebnisse gefunden

EPSONStatic variable, global variable, function

.def <sym1>, val <sym2>, scl <expr1>, type <expr2>, endef

<sym1> Symbol name in the C source (variable name/member name)

<sym2> Relocatable symbol name corresponding to <sym1>

<expr1> Storage class of <sym2> (decimal)

<expr2> Data type of <sym2> (hex)

This pseudo-instruction indicates that <sym2> is a function, static variable, or global variable that corresponds to the C source's variable name <sym1>.

Tag declaration of structure, union or enum type (start) .def <sym>, scl <expr1>, type <expr2>, size <expr3>, endef

<sym> Tag name of structure, union or enum type in the C source

<expr1> Storage class of <sym> (decimal)

<expr2> Data type of <sym> (hex)

<expr3> Data size of <sym> (decimal)

This pseudo-instruction indicates that the declared tag name is the structure, union or enum type of <sym>, and that member information exists in the next or later .def pseudo-instruction.

Bit field member (structure or union member)

.def <sym>, val <expr1>, scl <expr2>, type <expr3>, size <expr4>, endef

<sym> Bit field member name

<expr1> Bit offset from the beginning of structure or union (decimal)

<expr2> Storage class of <sym> (decimal)

<expr3> Data type of <sym> (hex)

<expr4> Bit size of <sym> (decimal)

This pseudo-instruction indicates that <sym> is a bit field member.

Tag declaration of structure, union, or enum type (end)

.def <sym1>, val <expr1>, scl <expr2>, tag <sym2>, size <expr3>, endef

<sym1,2> Tag name of structure, union or enum type in the C source

<expr1> Data size of <sym1> (decimal)

<expr2> 102 (fixed)

<expr3> Data size of <sym1> (decimal)

This pseudo-instruction indicates that the declared tag name is the structure, union or enum type of <sym1>, and that the member information is ended in the immediately preceding .def pseudo-instruction.

Structure, union or enum-type variable

(automatic variable, argument, structure or union member)

.def <sym1>, val <expr1>, scl <expr2>, tag <sym2>, size <expr3>, type <expr4>, endef

<sym1> Symbol name in the C source (variable name/member name)

<sym2> Tag name of the structure, union or enum-type variable indicated by <sym1>

<expr1> Automatic variable/argument: Offset from the stack pointer (decimal)

Structure or union member: Offset from the beginning of structure or union (decimal)

<expr2> Storage class of <sym1> (decimal)

<expr3> Data size of structure, union or enum type <sym2> (decimal)

<expr4> Data type of <sym1> (hex)

This pseudo-instruction indicates that <sym1> is the structure, union or enum-type data of structure/union automatic variable or structure/union member of tag name <sym2>.

Structure, union or enum-type variable (static variable, global variable) .def <sym1>, val <sym2>, scl <expr1>, tag <sym3>, size <expr2>, type <expr3>, endef

<sym1> Symbol name in the C source (variable name/member name)

<sym2> Relocatable symbol name corresponding to <sym1>

<sym3> Tag name of the structure, union or enum-type variable indicated by <sym2>

<expr1> Storage class of <sym2> (decimal)

<expr2> Data size of structure, union or enum type of <sym3> (decimal)

<expr3> Data type of <sym2> (hex)

This pseudo-instruction indicates that <sym2> is a structure, union or enum type static variable or a structure or union global variable corresponding to the C source's variable name <sym1>.

Array (automatic variable, argument, structure or union member)

.def <sym>, val <expr1>, scl <expr2>, dim <expr_list>, size <expr3>, type <expr4>, endef

<sym> Symbol name in the C source (variable name/member name)

<expr1> Automatic variable/argument: Offset from the stack pointer (decimal)

Structure or union member: Offset from the beginning of a structure or union (decimal) Argument (passed via register): Register number where the beginning element of the array is stored (decimal)

<expr2> Storage class of <sym> (decimal)

<expr3> Data size of array (decimal)

<expr4> Data type of array element (hex)

<expr_list> List of values indicating the dimension of array (decimal, 4-dimension at maximum) Example: int array[2][3] ® dim 2 3

This pseudo-instruction indicates that <sym> is the array data of an automatic array variable or a structure or union member.

Array (static variable, global variable)

.def <sym1>, val <sym2>, scl <expr1>, dim <expr_list>, size <expr2>, type <expr3>, endef

<sym1> Symbol name in the C source (variable name/member name)

<sym2> Relocatable symbol name corresponding to <sym1>

<expr1> Storage class of <sym2> (decimal)

<expr2> Data size of array (decimal)

<expr3> Data type of array element (hex)

<expr_list> List of values indicating the array dimension (decimal, 4-dimension maximum)

This pseudo-instruction indicates that <sym2> is a static array or a global array variable that corresponds to the C source's variable name <sym1>.

Structure, union or enum-type array (automatic variable, structure or union member) .def <sym1>,val <expr1>,scl <expr2>,tag <sym2>,dim <expr_list>,size <expr3>,type <expr4>,endef

<sym1> Symbol name in the C source (variable name/member name)

CHAPTER 6: C COMPILER

EPSON

Structure, union or enum-type array (static variable, global variable)

.def <sym1>,val <sym2>,scl <expr1>,tag <sym3>,dim <expr_list>,size <expr2>,type <expr3>,endef

<sym1> Symbol name in the C source (variable name/member name)

<sym2> Relocatable symbol name corresponding to <sym1>

<sym3> Tag name of the structure, union or enum-type variable indicated by <sym2>

<expr1> Storage class of <sym2> (decimal)

<expr2> Data size of the structure, union, or enum type array of <sym3> (decimal)

<expr3> Data type of the array element of <sym2> (hex)

<expr_list> List of values indicating the array dimension (decimal, 4-dimension at maximum)

This pseudo-instruction indicates that <sym2> is a static array or a global array variable corresponding to the C source's variable name <sym1>.

typedef (when using standard type) .def <sym>, scl <expr1>, type <expr2>, endef

<sym> Name of data type newly defined by typedef

<expr1> Storage class of the defined data type (decimal)

<expr2> Original data type for the newly defined data type (hex)

This pseudo-instruction indicates that <sym> has been defined as a new data type by typedef.

typedef (when using a nonstandard type)

.def <sym1>, scl <expr1>, tag <sym2>, size <expr2>, type <expr3>, endef

<sym1> Name of data type newly defined by typedef

<sym2> Tag name of original structure, union or enum type for the newly defined data type

<expr1> Storage class of the defined data type (decimal)

<expr2> Data size of structure, union or enum type of <sym2> (decimal)

<expr3> Data type of structure, union or enum type of <sym2> (hex)

This pseudo-instruction indicates that <sym1> has been defined as a new data type by typedef.

User-defined label

.def <sym1>, val <sym2>, scl <expr1>, type <expr2>, endef

<sym1> User-defined label name

<sym2> Local label name corresponding to the user-defined label name

<expr1> Storage class of user-defined label name (decimal)

<expr2> Data type of user-defined label name (hex)

This pseudo-instruction indicates that <sym1> is a user-defined label name corresponding to the local label

<sym2> generated by the gcc33.

Beginning and end of function or block .def <sym>, scl <expr>, type 0x0, endef

<sym> "ent": Beginning of function

"end": End of function

"begin": Beginning of block

"bend": End of block

<expr> 101: Beginning of function 111: End of function 100: Beginning of block 110: End of block

This pseudo-instruction indicates that the current position is the beginning or end of a function or block.

Values representing storage classes and data types

The values representing storage classes and data types are defined as follows:

Values of storage classes (scl) 1 Automatic variable

2 Global symbol (function/variable) 3 Local symbol (function/variable) 4 Register variable

6 User-defined label 8 Structure member

9 Argument (passed via stack) 10 Structure tag

11 Union member 12 Union tag

13 Type defined by typedef 15 Enum-type tag

16 Enum-type member

17 Argument (passed via register) 18 Bit field

100 Start position of block (begin) 101 Start position of function (ent)

102 End of structure, union or enum type definition 110 End position of block (bend)

111 End position of function (end) Values of data types (type)

A B

0x0 User-defined label 0x0 Any type other than pointer, function or array

0x1 void 0x1 Pointer

0x2 char 0x2 Function

0x3 short 0x3 Array

0x4 int 0x5 long 0x6 float 0x7 double 0x8 struct

0x9 union

0xA enum

0xB Enum member 0xC unsigned char

CHAPTER 6: C COMPILER

EPSON

6.7 Functions of gcc33 and Usage Precautions

• The calloc function cannot be used in this compiler.

• For other details about the gcc, refer to the documents for the gcc.

The documents can be acquired from the GNU mirror sites located in various places around the world through Internet, etc.