Back
MASM : PRAGMAS : PRAGMA_SYMBOL
PRAGMA_SYMBOL:

Syntax:

  • PRAGMA_SYMBOL SYM SYM0 SYM1 SYM2 offset
Description:

The pragma symbol instruction defines a new symbol "sym", in terms of given symbols: sym0, sym1, sym2 and an offset as:

	sym = sym0 + sym1 - sym2 + offset

The offset is a 32-bit integer, and the symbols: sym0, sym1, sym2, can assume the label "ZERO" for the value zero.

Microcode Pattern:

Takes no cycles to execute.
    Example: PRAGMA_SYMBOL DCA_sss ZERO sss DCL_START1 0x300

	  
ADDR   DISP    C5 MCC STKC FLW IOC AGU ASEL BS5 P5 BS4 C4 P4 MPC
----------------------------------------------------------------
!!SECID: 56 SLABEL: DCL_START1 SLABELID: 4212 STARTPMA:0x547 ENDPMA:0x547
0547: 000000aa  0   -   -   -   -    E   -   0  00  0   0 00   -
0548: 000000bb  0   -   -   -   -    E   -   0  00  0   0 00   -
0549: 000000cc  0   -   -   -   -    E   -   0  00  0   0 00   -
054A: 000000dd  0   -   -  SRFR -    E   -   0  00  0   0 00   -
!!SECID: 57 LABEL: xxx  STARTPMA: 0x054B  LEN: 46 
054B: 00000565  0   -   -   -   -    E   -   0  00  0   0 00   -
054C: 00000000  0   -   -   -   -    -  LFPC 0  00  0   0 00   -

	  
Exceptions :

None

Example :

PRAGMA_SYMBOL DCA_sss ZERO sss DCL_START1 0x300

Defines a new symbol "DCA_sss" which is the dynamic cache address of the symbol "sss". The value of this new symbol is given by: DCA_sss = 0 + sss - DCL_START1 + 0x300 In the above equation, "sss - DCL_START1" is the number of instructions between the symbol sss and the symbol delimiting the start of the dynamic cache block: DCL_START1 (see the microcode above) and 0x300 is the start address of the section of the instruction cache where the dynamic cache block is loaded.

APE Group Zeuthen. 2003
$Id: pragma_symbol_masm.php,v 1.2 2004/08/04 09:44:12 noe Exp $
$Id: syntax.php,v 1.8 2004/08/04 09:25:34 noe Exp $