Está en la página 1de 154

C H A P T E R 1

H2INC.............................................................................................2
ML..................................................................................................3
H2INC
The H2INC utility converts C header .h! "les into MA#M$
co%&ati'le include .inc! "les. It translates declarations and
&rototy&es 'ut does not translate code.
H2INC ((options)) flename.H
Option* Action
*C Passes co%%ents in the .h "le to the .inc "le.
*+a((flename)) #&eci"es that the out&ut "le contain only
e,uivalent MA#M state%ents. This is the
de-ault.
*+c((flename)) #&eci"es that the out&ut "le contain
e,uivalent MA#M state%ents &lus ori.inal C
state%ents converted to co%%ent lines.
*HELP Calls /uic0Hel& -or hel& on H2INC.
*Ht Ena'les .eneration o- te1t e,uates. 2y de-ault3
te1t ite%s are not translated.
*Mn Instructs H2INC to e1&licitly declare the
distances -or all &ointers and -unctions.
*Ni #u&&resses the e1&ansion o- nested include
"les.
*4n string Adds string to all na%es .enerated 'y H2INC.
5sed to eli%inate na%e con6icts 7ith other
H2INC$.enerated include "les.
*4u Ma0es all structure and union ta. na%es
uni,ue.
*8 9is&lays a su%%ary o- H2INC co%%and$line
synta1.
: H2INC also su&&orts the -ollo7in. o&tions -ro% Microso-t C3 version ;.< and
hi.her= *AC3 *AH3 *AL3 *AM3 *A#3 *AT3 * 93 * +3 * +i3 *><3 *>13 *>23 *>33 *>?3 *>c3
*>d3 *>r3 * I3 *@3 * Tc3 *53 *u3 * A<3 * A13 * A23 * A33 * A?3 * B3 * 4a3 * 4c3 * 4e3 * 4&13
* 4&23 * 4&?.
Command-Line Options
Syntax Options Environment
Variables
Variable Description
CL #&eci"es de-ault co%%and$line o&tions.
H2INC #&eci"es de-ault co%%and$line o&tions.
A&&ended a-ter
the CL environ%ent varia'le.
INCL59E #&eci"es search &ath -or include "les.
ML
The ML &ro.ra% asse%'les and lin0s one or %ore asse%'ly$
lan.ua.e source "les. The co%%and$line o&tions are case
sensitive.
ML ((options)) flename (( ((options)) flename))... ((* lin0
linkoptions))
Option Action
*AT Ena'les tiny$%e%ory$%odel su&&ort. Ena'les
error %essa.es -or code constructs that
violate the re,uire%ents -or .co% -or%at "les.
Note that this is not e,uivalent to the .MODEL
TINY directive.
*2l flename #elects an alternate lin0er.
*c Asse%'les only. 9oes not lin0.
*C& Preserves case o- all user identi"ers.
*Cu Ma&s all identi"ers to u&&ercase de-ault!.
*C1 Preserves case in &u'lic and e1tern sy%'ols.
*9symbol((=value)) 9e"nes a te1t %acro 7ith the .iven na%e. I-
value is %issin.3 it is 'lan0. Multi&le to0ens
se&arated 'y s&aces %ust 'e enclosed in
,uotation %ar0s.
*EP >enerates a &re&rocessed source listin. sent
to #T9C5T!. #ee *#-.
*+hexnum #ets stac0 siDe to hexnum 'ytes this is the
sa%e as *lin0 *#TACE=number!. The value %ust
'e e1&ressed in he1adeci%al notation. There
%ust 'e a s&ace 'et7een *+ and hexnum.
Option Action
*+eflename Na%es the e1ecuta'le "le.
Syntax Options
*+l((flename)) >enerates an asse%'led code listin.. #ee *#-.
*+%((flename)) Creates a lin0er %a& "le.
*+oflename Na%es an o'Fect "le.
*+Pi >enerates e%ulator "1$u&s -or 6oatin.$&oint
arith%etic %i1ed lan.ua.e only!.
*+r((flename)) >enerates a source 'ro7ser .#2R "le.
*+R((flename)) >enerates an e1tended -or% o- a source
'ro7ser .#2R "le.
*>c #&eci"es use o- +CRTRAN$ or Pascal$style
-unction callin. and na%in. conventions.
#a%e as OPTION LANGUAGE:PA!AL.
*>d #&eci"es use o- C$style -unction callin. and
na%in. conventions. #a%e as OPTION
LANGUAGE:!.
*H number Restricts e1ternal na%es to number si.ni"cant
characters. The de-ault is 31 characters.
*hel& Calls /uic0Hel& -or hel& on ML.
*I pathname #ets &ath -or include "le. A %a1i%u% o- 1< *I
o&tions is allo7ed.
*nolo.o #u&&resses %essa.es -or success-ul asse%'ly.
*#a Turns on listin. o- all availa'le in-or%ation.
*#c Adds instruction ti%in.s to listin. "le.
*#- Adds "rst$&ass listin. to listin. "le.
*#. Turns on listin. o- asse%'ly$.enerated code.
*#l width #ets the line 7idth o- source listin. in
characters &er line. Ran.e is ;< to 2GG or <.
9e-ault is <. #a%e as PAGE width.
*#n Turns oH sy%'ol ta'le 7hen &roducin. a
listin..
*#& length #ets the &a.e len.th o- source listin. in lines
&er &a.e. Ran.e is 1< to 2GG or <. 9e-ault is <.
#a%e as PAGE length.
*#s text #&eci"es text -or source listin.. #a%e as
U"TITLE text.
*#t text #&eci"es title -or source listin.. #a%e as TITLE
text.
*#1 Turns on -alse conditionals in listin..
*Ta flename Asse%'les source "le 7hose na%e does not
end 7ith the .as% e1tension.
*7 #a%e as *A<.
*Alevel #ets the 7arnin. level3 7here level I <3 13 23
or 3.
Option Action
*AB Returns an error code i- 7arnin.s are
.enerated.
*4d >enerates line$nu%'er in-or%ation in o'Fect
"le.
*4- Ma0es all sy%'ols &u'lic.
*4i >enerates CodeJie7 in-or%ation in o'Fect "le.
*4% Ena'les M#$% o&tion -or %a1i%u%
co%&ati'ility 7ith MA#M G.1.
*4&((alignment)) Pac0s structures on the s&eci"ed 'yte
'oundary. The alignment can 'e 13 23 or ?.
*4s Per-or%s a synta1 chec0 only.
*8 9is&lays a su%%ary o- ML co%%and$line
synta1.
+or co%&ati'ility 7ith /uic0Asse%'ler %a0e"les3 ML reco.niDes
these o&tions=
Option Action
*a Crders se.%ents al&ha'etically in
/uic0Asse%'ler. MA#M ;.1 uses the .ALP&A
directive -or al&ha'etical orderin. and
i.nores *a.
*Cl E,uivalent to *C&.
*ED Prints the source -or error lines to the screen.
MA#M ;.1 i.nores this o&tion.
*P1 Per-or%s one$&ass asse%'ly. MA#M ;.1 i.nores
this o&tion.
*P2 Per-or%s t7o$&ass asse%'ly. MA#M ;.1 i.nores
this o&tion.
*s Crders se.%ents se,uentially. MA#M ;.1 uses
the .E' directive -or se,uential orderin. and
i.nores *s.
*#, E,uivalent to *#l< *#&<.
Variable Description
INCL59E #&eci"es search &ath -or include "les.
ML #&eci"es de-ault co%%and$line o&tions.
Qui!"ssembler
Support
Environment
Variables
TMP #&eci"es &ath -or te%&orary "les.
C H A P T E R 2
To&ical Cross$Re-erence -or 9irectives...........................................K
9irectives.....................................................................................11
#iretives
$opial Cross-%e&erene &or #iretives
Code Labels
ALI>N EJEN
LA2EL CR>
Conditional "ssembly
EL#E EL#EI+ EL#EI+2
EN9I+ I+ I+2
I+2*I+N2 I+9E+*I+N9E+ I+9I+*I+9I+I
I+E I+I9N*I+I9NI
Conditional Control 'lo(
.2REAE .CCNTIN5E .EL#E
.EL#EI+ .EN9I+ .EN9A
.I+ .REPEAT .5NTIL
.5NTILCB4 .AHILE
Conditional Error
.ERR .ERR2 .ERR2
.ERR9E+ .ERR9I+*.ERR9I+I .ERRE
.ERRI9N*.ERRI9NI .ERRN2 .ERRN9E+
.ERRN4
#ata "lloation
ALI>N 2LTE*#2LTE 9ACR9*#9ACR9
EJEN +ACR9 LA2EL
CR> /ACR9 REAL?
REALK REAL1< T2LTE
ACR9*#ACR9
E)uates
I
E/5
TEBTE/5
Listin* Control
.CRE+ .LI#T .LI#TALL
.LI#TI+ .LI#TMACRC .LI#TMACRCALL
.NCCRE+ .NCLI#T .NCLI#TI+
.NCLI#TMACRC PA>E #52TITLE
.T+CCN9 TITLE
Maros
EN9M EBITM >CTC
LCCAL MACRC P5R>E
Misellaneous
A##5ME CCMMENT ECHC
EN9 INCL59E INCL59ELI2
CPTICN PCPCCNTEBT P5#HCCNTEBT
.RA9IB
+roedures
EN9P INJCEE PRCC
PRCTC 5#E#
+roessor
.1K; .2K; .2K;P
.2KM .3K; .3K;P
.3KM .?K; .?K;P
.K<K; .K<KM .NCKM
%epeat ,lo!s
EN9M +CR +CRC
>CTC REPEAT AHILE
Sope
CCMM EBTERN EBTERN9E+
INCL59ELI2 P52LIC
Se*ment
.ALPHA A##5ME .9C##E>
EN9 EN9# >RC5P
#E>MENT .#E/
Simpli&ied Se*ment
.CC9E .CCN#T .9ATA
.9ATA8 .9C##E> .EBIT
.+AR9ATA .+AR9ATA8 .MC9EL
.#TACE .#TART5P
Strin*
CAT#TR IN#TR
#I4E#TR #52#TR
Struture and %eord
EN9# RECCR9 #TR5CT
TLPE9E+ 5NICN
#iretives
name I expression
Assi.ns the nu%eric value o- expression to name. The sy%'ol
can 'e rede"ned later.
.$()
Ena'les asse%'ly o- instructions -or the K<1K; &rocessorN
disa'les asse%'ly o- instructions introduced 7ith later
&rocessors. Also ena'les K<KM instructions.
.*()
Ena'les asse%'ly o- non&rivile.ed instructions -or the K<2K;
&rocessorN disa'les asse%'ly o- instructions introduced 7ith
later &rocessors. Also ena'les K<2KM instructions.
.*()P
Ena'les asse%'ly o- all instructions includin. &rivile.ed! -or
the K<2K; &rocessorN disa'les asse%'ly o- instructions
introduced 7ith later &rocessors. Also ena'les K<2KM
instructions.
.*(+
Ena'les asse%'ly o- instructions -or the K<2KM co&rocessorN
disa'les asse%'ly o- instructions introduced 7ith later
co&rocessors.
.,()
Ena'les asse%'ly o- non&rivile.ed instructions -or the K<3K;
&rocessorN disa'les asse%'ly o- instructions introduced 7ith
later &rocessors. Also ena'les K<3KM instructions.
.,()P
Ena'les asse%'ly o- all instructions includin. &rivile.ed! -or
the K<3K; &rocessorN disa'les asse%'ly o- instructions
introduced 7ith later &rocessors. Also ena'les K<3KM
instructions.
.,(+
Ena'les asse%'ly o- instructions -or the K<3KM co&rocessor.
.-()
Ena'les asse%'ly o- non&rivile.ed instructions -or the K<?K;
&rocessor.
.-()P
Ena'les asse%'ly o- all instructions includin. &rivile.ed! -or
the K<?K; &rocessor.
.(%()
Ena'les asse%'ly o- K<K; instructions and the identical K<KK
instructions!N disa'les asse%'ly o- instructions introduced 7ith
later &rocessors. Also ena'les K<KM instructions. This is the
de-ault %ode -or &rocessors.
.(%(+
Ena'les asse%'ly o- K<KM instructionsN disa'les asse%'ly o-
instructions introduced 7ith later co&rocessors. This is the
de-ault %ode -or co&rocessors.
ALIGN ((number))
Ali.ns the ne1t varia'le or instruction on a 'yte that is a
%ulti&le o- number.
.ALP&A
Crders se.%ents al&ha'etically.
AUME segregister:name ((. segregister:name))...
AUME dataregister:type ((. dataregister:type))...
AUME register:E//O/ ((. register:E//O/))...
AUME ((register:)) NOT&ING ((. register:NOT&ING))...
Ena'les error chec0in. -or re.ister values. A-ter an AUME is
&ut into eHect3 the asse%'ler 7atches -or chan.es to the
values o- the .iven re.isters. E//O/ .enerates an error i- the
re.ister is used. NOT&ING re%oves re.ister error chec0in..
Lou can co%'ine diHerent 0inds o- assu%&tions in one
state%ent.
."/EA0 ((.I1 condition))
>enerates code to ter%inate a .2&ILE or ./EPEAT 'loc0 i-
condition is true.
((name)) "YTE initializer ((. initializer)) ...
Allocates and o&tionally initialiDes a 'yte o- stora.e -or each
initializer. Can also 'e used as a ty&e s&eci"er any7here a
ty&e is le.al.
name !ATT/ ((textitem1 ((. textitem2)) ...))
Concatenates te1t ite%s. Each te1t ite% can 'e a literal strin.3
a constant &receded 'y a 33 or the strin. returned 'y a %acro
-unction.
.!ODE ((name))
Ahen used 7ith .MODEL3 indicates the start o- a code
se.%ent called name the de-ault se.%ent na%e is OTEBT -or
tiny3 s%all3 co%&act3 and 6at %odels3 or moduleOTEBT -or
other %odels!.
!OMM defnition ((. defnition)) ...
Creates a co%%unal varia'le 7ith the attri'utes s&eci"ed in
defnition. Each defnition has the -ollo7in. -or%=
((langtype)) ((NEA/ P 1A/)) label:type((:count))
The label is the na%e o- the varia'le. The type can 'e any
ty&e s&eci"er "YTE3 2O/D3 and so on! or an inte.er
s&eci-yin. the nu%'er o- 'ytes. The count s&eci"es the
nu%'er o- data o'Fects one is the de-ault!.
!OMMENT delimiter ((text))
((text))
((text)) delimiter ((text))
Treats all text 'et7een or on the sa%e line as the deli%iters as
a co%%ent.
.!ONT
Ahen used 7ith .MODEL3 starts a constant data se.%ent
7ith se.%ent na%e CCN#T!. This se.%ent has the read$only
attri'ute.
.!ONTINUE ((.I1 condition))
>enerates code to Fu%& to the to& o- a .2&ILE or ./EPEAT
'loc0 i- condition is true.
.!/E1
Ena'les listin. o- sy%'ols in the sy%'ol &ortion o- the sy%'ol
ta'le and 'ro7ser "le.
.DATA
Ahen used 7ith .MODEL3 starts a near data se.%ent -or
initialiDed data se.%ent na%e O9ATA!.
.DATA4
Ahen used 7ith .MODEL3 starts a near data se.%ent -or
uninitialiDed data se.%ent na%e O2##!.
.DOEG
Crders the se.%ents accordin. to the M#$9C# se.%ent
convention= CC9E "rst3 then se.%ents not in 9>RC5P3 and
then se.%ents in 9>RC5P. The se.%ents in 9>RC5P -ollo7
this order= se.%ents not in 2## or #TACE3 then 2## se.%ents3
and "nally #TACE se.%ents. Pri%arily used -or ensurin.
CodeJie7 su&&ort in MA#M stand$alone &ro.ra%s. #a%e as
DOEG.
DOEG
Identical to .DOEG3 7hich is the &re-erred -or%.
D"
Can 'e used to de"ne data such as "YTE.
DD
Can 'e used to de"ne data such as D2O/D.
D1
Can 'e used to de"ne data such as 12O/D.
D'
Can 'e used to de"ne data such as '2O/D.
DT
Can 'e used to de"ne data such as T"YTE.
D2
Can 'e used to de"ne data such as 2O/D.
((name)) D2O/D initializer ((. initializer))...
Allocates and o&tionally initialiDes a dou'le7ord ? 'ytes! o-
stora.e -or each initializer. Can also 'e used as a ty&e
s&eci"er any7here a ty&e is le.al.
E!&O message
9is&lays message to the standard out&ut device 'y de-ault3
the screen!. #a%e as 3OUT.
.ELE
#ee .I1.
ELE
Mar0s the 'e.innin. o- an alternate 'loc0 7ithin a conditional
'loc0. #ee I1.
ELEI1
Co%'ines ELE and I1 into one state%ent. #ee I1.
ELEI1*
ELEI1 'loc0 evaluated on every asse%'ly &ass i-
OPTION:ETI1* is T/UE.
END ((address))
Mar0s the end o- a %odule and3 o&tionally3 sets the &ro.ra%
entry &oint to address.
.ENDI1
#ee .I1.
ENDI1
#ee I1.
ENDM
Ter%inates a %acro or re&eat 'loc0. #ee MA!/O3 1O/3 1O/!3
/EPEAT3 or 2&ILE.
name ENDP
Mar0s the end o- &rocedure name &reviously 'e.un 7ith
P/O!. #ee P/O!.
name END
Mar0s the end o- se.%ent3 structure3 or union name
&reviously 'e.un 7ith EGMENT3 T/U!T3 UNION3 or a
si%&li"ed se.%ent directive.
.END2
#ee .2&ILE.
name E'U expression
Assi.ns nu%eric value o- expression to name. The name
cannot 'e rede"ned later.
name E'U 5text6
Assi.ns s&eci"ed text to name. The name can 'e assi.ned a
diHerent text later. #ee TE7TE'U.
.E// ((message))
>enerates an error.
.E//* ((message))
.E// 'loc0 evaluated on every asse%'ly &ass i-
OPTION:ETI1* is T/UE.
.E//" 5textitem6 ((. message))
>enerates an error i- textitem is 'lan0.
.E//DE1 name ((. message))
>enerates an error i- name is a &reviously de"ned la'el3
varia'le3 or sy%'ol.
.E//DI1((I)) 5textitem16. 5textitem26 ((. message))
>enerates an error i- the te1t ite%s are diHerent. I- I is .iven3
the co%&arison is case insensitive.
.E//E expression ((. message))
>enerates an error i- expression is -alse <!.
.E//IDN((I)) 5textitem16. 5textitem26 ((. message))
>enerates an error i- the te1t ite%s are identical. I- I is .iven3
the co%&arison is case insensitive.
.E//N" 5textitem6 ((. message))
>enerates an error i- textitem is not 'lan0.
.E//NDE1 name ((. message))
>enerates an error i- name has not 'een de"ned.
.E//N8 expression ((. message))
>enerates an error i- expression is true nonDero!.
EVEN
Ali.ns the ne1t varia'le or instruction on an even 'yte.
.E7IT ((expression))
>enerates ter%ination code. Returns o&tional expression to
shell.
E7ITM ((textitem))
Ter%inates e1&ansion o- the current re&eat or %acro 'loc0 and
'e.ins asse%'ly o- the ne1t state%ent outside the 'loc0. In a
%acro -unction3 textitem is the value returned.
E7TE/N ((langtype)) name ((9altid:)) :type ((. ((langtype)) name
((9altid:)) :type))...
9e"nes one or %ore e1ternal varia'les3 la'els3 or sy%'ols
called name 7hose ty&e is type. The type can 'e A"3 7hich
i%&orts name as a constant. #a%e as E7T/N.
E7TE/NDE1 ((langtype)) name:type ((. ((langtype))
name:type))...
9e"nes one or %ore e1ternal varia'les3 la'els3 or sy%'ols
called name 7hose ty&e is type. I- name is de"ned in the
%odule3 it is treated as PU"LI!. I- name is re-erenced in the
%odule3 it is treated as E7TE/N. I- name is not re-erenced3 it
is i.nored. The type can 'e A"3 7hich i%&orts name as a
constant. Nor%ally used in include "les.
E7T/N
#ee E7TE/N.
.1A/DATA ((name))
Ahen used 7ith .MODEL3 starts a -ar data se.%ent -or
initialiDed data se.%ent na%e +ARO9ATA or name!.
.1A/DATA4 ((name))
Ahen used 7ith .MODEL3 starts a -ar data se.%ent -or
uninitialiDed data se.%ent na%e +ARO2## or name!.
1O/ &ara%eter ((:/E' P :=de-ault)) . 5ar.u%ent ((.
ar.u%ent))...6
statements
ENDM
Mar0s a 'loc0 that 7ill 'e re&eated once -or each argument3
7ith the current argument re&lacin. parameter on each
re&etition. #a%e as I/P.
1O/!
parameter. 5string6 statements
ENDM
Mar0s a 'loc0 that 7ill 'e re&eated once -or each character
in string3 7ith the current character re&lacin. parameter on
each re&etition. #a%e as I/P!.
((name)) 12O/D initializer ((. initializer))...
Allocates and o&tionally initialiDes ; 'ytes o- stora.e -or each
initializer. Also can 'e used as a ty&e s&eci"er any7here a
ty&e is le.al.
GOTO macrolabel
Trans-ers asse%'ly to the line %ar0ed :macrolabel. GOTO is
&er%itted only inside MA!/O3 1O/3 1O/!3 /EPEAT3 and
2&ILE 'loc0s. The la'el %ust 'e the only directive on the line
and %ust 'e &receded 'y a leadin. colon.
name G/OUP segment ((. segment))...
Add the s&eci"ed segments to the .rou& called name.
.I1 condition1
statements
((.ELEI1 condition2
statements))
((.ELE
statements))
.ENDI1
>enerates code that tests condition1 -or e1a%&le3 AB Q M!
and e1ecutes the statements i- that condition is true. I- an
.ELE -ollo7s3 its state%ents are e1ecuted i- the ori.inal
condition 7as -alse. Note that the conditions are evaluated
at run ti%e.
I1 e1&ression1
ifstatements
((ELEI1 expression2
elseifstatements))
((ELE
elsestatements))
ENDI1
>rants asse%'ly o- ifstatements i- expression1 is true
nonDero! or elseifstatements i- expression1 is -alse <! and
expression2 is true. The -ollo7in. directives %ay 'e
su'stituted -or ELEI1= ELEI1"3
ELEI1DE13 ELEI1DI13 ELEI1DI1I3 ELEI1E3
ELEI1IDN3 ELEI1IDNI3 ELEI1N"3 and ELEI1NDE1.
C&tionally3 asse%'les elsestatements i- the &revious
e1&ression is -alse. Note that the e1&ressions are evaluated
at asse%'ly ti%e.
I1* expression
I1 'loc0 is evaluated on every asse%'ly &ass i-
OPTION:ETI1* is T/UE. #ee I1 -or co%&lete synta1.
I1" textitem
>rants asse%'ly i- textitem is 'lan0. #ee I1 -or co%&lete
synta1.
I1DE1 name
>rants asse%'ly i- name is a &reviously de"ned la'el3
varia'le3 or sy%'ol. #ee I1 -or co%&lete synta1.
I1DI1((I)) textitem1. textitem2
>rants asse%'ly i- the te1t ite%s are diHerent. I- I is .iven3 the
co%&arison is case insensitive. #ee I1 -or co%&lete synta1.
I1E expression
>rants asse%'ly i- expression is -alse <!. #ee I1 -or co%&lete
synta1.
I1IDN((I)) textitem1. textitem2
>rants asse%'ly i- the te1t ite%s are identical. I- I is .iven3 the
co%&arison is case insensitive. #ee I1 -or co%&lete synta1.
I1N" textitem
>rants asse%'ly i- textitem is not 'lan0. #ee I1 -or co%&lete
synta1.
I1NDE1 name
>rants asse%'ly i- name has not 'een de"ned. #ee I1 -or
co%&lete synta1.
IN!LUDE flename
Inserts source code -ro% the source "le .iven 'y flename into
the current source "le durin. asse%'ly. The flename %ust 'e
enclosed in an.le 'rac0ets i- it includes a 'ac0slash3
se%icolon3 .reater$than sy%'ol3 less$than sy%'ol3 sin.le
,uotation %ar03 or dou'le ,uotation %ar0.
IN!LUDELI" libraryname
In-or%s the lin0er that the current %odule should 'e lin0ed
7ith libraryname. The libraryname %ust 'e enclosed in an.le
'rac0ets i- it includes a 'ac0slash3 se%icolon3 .reater$than
sy%'ol3 less$than sy%'ol3 sin.le ,uotation %ar03 or dou'le
,uotation %ar0.
name INT/ ((position.)) textitem1. textitem2
+inds the "rst occurrence o- textitem2 in textitem1. The
startin. position is o&tional. Each te1t ite% can 'e a literal
strin.3 a constant &receded 'y a 33 or the strin. returned 'y a
%acro -unction.
INVO0E expression ((. arguments))
Calls the &rocedure at the address .iven 'y expression3
&assin. the ar.u%ents on the stac0 or in re.isters accordin.
to the standard callin. conventions o- the lan.ua.e ty&e. Each
ar.u%ent &assed to the &rocedure %ay 'e an e1&ression3 a
re.ister &air3 or an address e1&ression an e1&ression
&receded 'y ADD/!.
I/P
#ee 1O/.
I/P!
#ee 1O/!.
name LA"EL type
Creates a ne7 la'el 'y assi.nin. the current location$counter
value and the .iven type to name.
name LA"EL ((NEA/ P 1A/ P P/O!)) PT/ ((type))
Creates a ne7 la'el 'y assi.nin. the current location$counter
value and the .iven type to name.
.LALL
#ee .LITMA!/OALL.
.L1!OND
#ee .LITI1.
.LIT
#tarts listin. o- state%ents. This is the de-ault.
.LITALL
#tarts listin. o- all state%ents. E,uivalent to the co%'ination
o- .LIT3 .LITI13 and .LITMA!/OALL.
.LITI1
#tarts listin. o- state%ents in -alse conditional 'loc0s. #a%e
as .L1!OND.
.LITMA!/O
#tarts listin. o- %acro e1&ansion state%ents that .enerate
code or data. This is the de-ault. #a%e as .7ALL.
.LITMA!/OALL
#tarts listin. o- all state%ents in %acros. #a%e as .LALL.
LO!AL localname ((. localname))...
Aithin a %acro3 LO!AL de"nes la'els that are uni,ue to each
instance o- the %acro.
LO!AL label (( ;count < )) ((:type)) ((. label (( ;count< ))
((type))))...
Aithin a &rocedure de"nition P/O!!3 LO!AL creates stac0$
'ased varia'les that e1ist -or the duration o- the &rocedure.
The label %ay 'e a si%&le varia'le or an array containin.
count ele%ents.
name MA!/O ((parameter ((:/E' P :=default P :VA/A/G))))...
statements
ENDM ((value))
Mar0s a %acro 'loc0 called name and esta'lishes
parameter &laceholders -or ar.u%ents &assed 7hen the
%acro is called. A %acro -unction returns value to the
callin. state%ent.
.MODEL memorymodel ((. langtype)) ((. stackoption))
InitialiDes the &ro.ra% %e%ory %odel. The memorymodel can
'e TINY3 MALL3 !OMPA!T3 MEDIUM3 LA/GE3 &UGE3 or
1LAT. The langtype can 'e !3 "AI!3 1O/T/AN3 PA!AL3
Y!ALL3 or TD!ALL. The stackoption can 'e NEA/TA!0
or 1A/TA!0.
NAME modulename
I.nored.
.NO(+
9isallo7s asse%'ly o- all 6oatin.$&oint instructions.
.NO!/E1 ((name((. name))...))
#u&&resses listin. o- sy%'ols in the sy%'ol ta'le and 'ro7ser
"le. I- na%es are s&eci"ed3 only the .iven na%es are
su&&ressed. #a%e as .7!/E1.
.NOLIT
#u&&resses &ro.ra% listin.. #a%e as .7LIT.
.NOLITI1
#u&&resses listin. o- conditional 'loc0s 7hose condition
evaluates to -alse <!. This is the de-ault. #a%e as .1!OND.
.NOLITMA!/O
#u&&resses listin. o- %acro e1&ansions. #a%e as .ALL.
OPTION optionlist
Ena'les and disa'les -eatures o- the asse%'ler. Availa'le
o&tions include !AEMAP3 DOTNAME3 NODOTNAME3
EMULATO/3 NOEMULATO/3 EPILOGUE3 E7P/$)3 E7P/,*3
LANGUAGE3 L=MP3 NOL=MP3 M#$%3 NOM#$%3
NO0EY2O/D3 NOIGNE7TEND3 O11ET3 OLDMA!/O3
NOOLDMA!/O3 OLDT/U!T3 NOOLDT/U!T3 P/O!3
P/OLOGUE3 /EADONLY3 NO/EADONLY3 !OPED3
NO!OPED3 EGMENT3 and ETI1*.
O/G expression
#ets the location counter to expression.
3OUT
#ee E!&O.
PAGE ((((length)). width))
#ets line length and character width o- the &ro.ra% listin.. I-
no ar.u%ents are .iven3 .enerates a &a.e 'rea0.
PAGE >
Incre%ents the section nu%'er and resets the &a.e nu%'er to
1.
POP!ONTE7T context
Restores &art or all o- the current context saved 'y the
PU&!ONTE7T directive!. The context can 'e AUME3
/ADI73 LITING3 !PU3 or ALL.
label P/O! ((distance)) ((langtype)) ((visibility))
((5prologuearg6))
((UE reglist)) ((. parameter ((:tag))))...
statements
label ENDP
Mar0s start and end o- a &rocedure 'loc0 called label. The
state%ents in the 'loc0 can 'e called 7ith the !ALL
instruction or INVO0E directive.
label P/OTO ((distance)) ((langtype)) ((. ((parameter)):tag))...
Prototy&es a -unction.
PU"LI! ((langtype)) name ((. ((langtype)) name))...
Ma0es each varia'le3 la'el3 or a'solute sy%'ol s&eci"ed as
name availa'le to all other %odules in the &ro.ra%.
PU/GE macroname ((. macroname))...
9eletes the s&eci"ed %acros -ro% %e%ory.
PU&!ONTE7T context
#aves &art or all o- the current context= se.%ent re.ister
assu%es3 radi1 value3 listin. and cre- 6a.s3 or
&rocessor*co&rocessor values. The context can 'e AUME3
/ADI73 LITING3 !PU3 or ALL.
((name)) '2O/D initializer ((. initializer))...
Allocates and o&tionally initialiDes K 'ytes o- stora.e -or each
initializer. Also can 'e used as a ty&e s&eci"er any7here a
ty&e is le.al.
./ADI7 expression
#ets the de-ault radi13 in the ran.e 2 to 1;3 to the value o-
expression.
name /EAL- initializer ((. initializer))...
Allocates and o&tionally initialiDes a sin.le$&recision ?$'yte!
6oatin.$&oint nu%'er -or each initializer.
name /EAL( initializer ((. initializer))...
Allocates and o&tionally initialiDes a dou'le$&recision K$'yte!
6oatin.$&oint nu%'er -or each initializer.
name /EAL$% initializer ((. initializer))...
Allocates and o&tionally initialiDes a 1<$'yte 6oatin.$&oint
nu%'er -or each initializer.
recordname /E!O/D feldname:width ((= expression))
((. feldname:width ((= expression))))...
9eclares a record ty&e consistin. o- the s&eci"ed "elds. The
feldname na%es the "eld3 width s&eci"es the nu%'er o- 'its3
and expression .ives its initial value.
./EPEAT
statements
.UNTIL condition
>enerates code that re&eats e1ecution o- the 'loc0 o-
statements until condition 'eco%es true. .UNTIL!783
7hich 'eco%es true 7hen CB is Dero3 %ay 'e su'stituted
-or .UNTIL. The condition is o&tional 7ith .UNTIL!78.
/EPEAT expression
statements
ENDM
Mar0s a 'loc0 that is to 'e re&eated expression ti%es.
#a%e as /EPT.
/EPT
#ee /EPEAT.
.ALL
#ee .NOLITMA!/O.
name "YTE initializer ((. initializer))...
Allocates and o&tionally initialiDes a si.ned 'yte o- stora.e -or
each initializer. Can also 'e used as a ty&e s&eci"er any7here
a ty&e is le.al.
name D2O/D initializer ((. initializer))...
Allocates and o&tionally initialiDes a si.ned dou'le7ord ?
'ytes! o- stora.e -or each initializer. Also can 'e used as a
ty&e s&eci"er any7here a ty&e is le.al.
name EGMENT ((/EADONLY)) ((align)) ((combine)) ((use))
((?class?))
statements
name END
9e"nes a &ro.ra% se.%ent called name havin. se.%ent
attri'utes align "YTE3 2O/D3 D2O/D3 PA/A3 PAGE!3
combine PU"LI!3 TA!03 !OMMON3 MEMO/Y3 AT
address3 P/IVATE!3 use UE$)3 UE,*3 1LAT!3 and class.
.E'
Crders se.%ents se,uentially the de-ault order!.
.1!OND
#ee .NOLITI1.
name I8ET/ textitem
+inds the siDe o- a te1t ite%.
.TA!0 ((size))
Ahen used 7ith .MODEL3 de"nes a stac0 se.%ent 7ith
se.%ent na%e #TACE!. The o&tional size s&eci"es the nu%'er
o- 'ytes -or the stac0 de-ault 13<2?!. The .TA!0 directive
auto%atically closes the stac0 state%ent.
.TA/TUP
>enerates &ro.ra% start$u& code.
T/U!
#ee T/U!T.
name T/U!T ((alignment)) ((. NONUNI'UE))
felddeclarations
name END
9eclares a structure ty&e havin. the s&eci"ed
felddeclarations. Each "eld %ust 'e a valid data de"nition.
#a%e as T/U!.
name U"T/ textitem. position ((. length))
Returns a su'strin. o- textitem3 startin. at position. The
textitem can 'e a literal strin.3 a constant &receded 'y a 33 or
the strin. returned 'y a %acro -unction.
U"TITLE text
9e"nes the listin. su'title. #a%e as U"TTL.
U"TTL
#ee U"TITLE.
name 2O/D initializer ((. initializer))...
Allocates and o&tionally initialiDes a si.ned 7ord 2 'ytes! o-
stora.e -or each initializer. Can also 'e used as a ty&e
s&eci"er any7here a ty&e is le.al.
((name)) T"YTE initializer ((. initializer))...
Allocates and o&tionally initialiDes 1< 'ytes o- stora.e -or each
initializer. Can also 'e used as a ty&e s&eci"er any7here a
ty&e is le.al.
name TE7TE'U ((textitem))
Assi.ns textitem to name. The textitem can 'e a literal strin.3
a constant &receded 'y a 33 or the strin. returned 'y a %acro
-unction.
.T1!OND
To..les listin. o- -alse conditional 'loc0s.
TITLE text
9e"nes the &ro.ra% listin. title.
name TYPEDE1 type
9e"nes a ne7 ty&e called name3 7hich is e,uivalent to type.
name UNION ((alignment)) ((. NONUNI'UE))
felddeclarations
((name)) END
9eclares a union o- one or %ore data ty&es. The
felddeclarations %ust 'e valid data de"nitions. C%it the
END name la'el on nested UNION de"nitions.
.UNTIL
#ee ./EPEAT.
.UNTIL!78
#ee ./EPEAT.
.2&ILE condition
statements
.END2
>enerates code that e1ecutes the 'loc0 o- statements 7hile
condition re%ains true.
2&ILE expression
statements
ENDM
Re&eats asse%'ly o- 'loc0 statements as lon. as
expression re%ains true.
((name)) 2O/D initialiDer ((. initializer))...
Allocates and o&tionally initialiDes a 7ord 2 'ytes! o- stora.e
-or each initializer. Can also 'e used as a ty&e s&eci"er
any7here a ty&e is le.al.
.7ALL
#ee .LITMA!/O.
.7!/E1
#ee .NO!/E1.
.7LIT
#ee .NOLIT.
C H A P T E R 3
To&ical Cross$Re-erence -or #y%'ols...........................................2;
To&ical Cross$Re-erence -or C&erators.........................................2M
Symbols and Operators
$opial Cross-%e&erene &or Symbols
#ate and $ime In&ormation
R9ate
RTi%e
Environment In&ormation
RC&u
REnviron
RInter-ace
RJersion
'ile In&ormation
R+ileCur
R+ileNa%e
RLine
Maro 'untions
RCat#tr
RIn#tr
R#iDe#tr
R#u'#tr
Misellaneous
S 8 RR=
R2 R+
Se*ment In&ormation
Rcode RCode#iDe RCur#e.
Rdata R9ata#iDe R-ardata
R-ardata8 RModel Rstac0
RAord#iDe
$opial Cross-%e&erene &or Operators
"rit-meti
: T $
. * ()
MC9
Control 'lo(
U UI V
VV W W I
I I Q Q I
PP
Lo*ial and S-i&t
AN9 NCT CR
#HL #HR BCR
Maro
U X V
NN WQ
Misellaneous
YY Z [ =
== N CARRL8
95P CJER+LCA8 PARITL8
#I>N8 4ERC8
%eord
MA#E
AI9TH
%elational
E/ >E >T
LE LT NE
Se*ment
=
LRC++#ET
C++#ET
#E>
$ype
HI>H HI>HACR9 LEN>TH
LEN>THC+ LCA LCAACR9
CPATTR PTR #HCRT
#I4E #I4EC+ THI#
TLPE
+rede&ined Symbols
@
The current value o- the location counter.
4
In data declarations3 a value that the asse%'ler allocates 'ut
does not initialiDe.
AA:
9e"nes a code la'el reco.niDa'le only 'et7een label1 and
label23 7here label1 is either start o- code or the &revious
AA: la'el3 and label2 is either end o- code or the ne1t AA:
la'el. #ee A" and A1.
A"
The location o- the &revious AA: la'el.
A!attr9 string1 ((. string2...)) :
Macro -unction that concatenates one or %ore strin.s. Returns
a strin..
AcoBe
The na%e o- the code se.%ent te1t %acro!.
A!oBeiCe
< -or TINY3 MALL3 !OMPA!T3 and 1LAT %odels3 and 1 -or
MEDIUM3 LA/GE3 and &UGE %odels nu%eric e,uate!.
A!pD
A 'it %as0 s&eci-yin. the &rocessor %ode nu%eric e,uate!.
A!DreE
The na%e o- the current se.%ent te1t %acro!.
ABata
The na%e o- the de-ault data .rou&. Evaluates to 9>RC5P -or
all %odels e1ce&t 1LAT. Evaluates to 1LAT under the 1LAT
%e%ory %odel te1t %acro!.
ADataiCe
< -or TINY3 MALL3 MEDIUM3 and 1LAT %odels3 1 -or
!OMPA!T and LA/GE %odels3 and 2 -or &UGE %odel
nu%eric e,uate!.
ADate
The syste% date in the -or%at %%*dd*yy te1t %acro!.
AEnFiron9 envvar :
Jalue o- environ%ent varia'le envvar %acro -unction!.
A1
The location o- the ne1t AA: la'el.
AGarBata
The na%e o- the se.%ent de"ned 'y the .1A/DATA directive
te1t %acro!.
AGarBata4
The na%e o- the se.%ent de"ned 'y the .1A/DATA4 directive
te1t %acro!.
A1ile!Dr
The na%e o- the current "le te1t %acro!.
A1ileNaHe
The 'ase na%e o- the %ain "le 'ein. asse%'led te1t %acro!.
AIntr9 ((position)). string1. string2 :
Macro -unction that "nds the "rst occurrence o- string2 in
string13 'e.innin. at position 7ithin string1. I- position does
not a&&ear3 search 'e.ins at start o- string1. Returns a
&osition inte.er or < i- string2 is not -ound.
AInterGace
In-or%ation a'out the lan.ua.e &ara%eters nu%eric e,uate!.
ALine
The source line nu%'er in the current "le nu%eric e,uate!.
AMoBel
1 -or TINY %odel3 2 -or MALL %odel3 3 -or !OMPA!T %odel3
? -or MEDIUM %odel3 G -or LA/GE %odel3 ; -or &UGE %odel3
and M -or 1LAT %odel nu%eric e,uate!.
AiCetr9 string :
Macro -unction that returns the len.th o- the .iven strin..
Returns an inte.er.
ADbtr9 string. position ((. length)) :
Macro -unction that returns a su'strin. startin. at position.
AstacI
9>RC5P -or near stac0s or #TACE -or -ar stac0s te1t %acro!.
ATiHe
The syste% ti%e in 2?$hour hh=%%=ss -or%at te1t %acro!.
AVersion
;1< in MA#M ;.1 te1t %acro!.
A2orBiCe
T7o -or a 1;$'it se.%ent or ? -or a 32$'it se.%ent nu%eric
e,uate!.
Operators
expression1 > expression2
Returns expression1 &lus expression2.
expression1 \ expression2
Returns expression1 %inus expression2.
expression1
*
expression2
Returns expression1 ti%es expression2.
expression1 J expression2
Returns expression1 divided 'y expression2.
\expression
Reverses the si.n o- expression.
expression1 ;expression2<
Returns expression1 &lus ;expression2<.
segment: expression
Cverrides the de-ault se.%ent o- expression 7ith segment.
The segment can 'e a se.%ent re.ister3 .rou& na%e3
se.%ent na%e3 or se.%ent e1&ression. The expression %ust
'e a constant.
expression. feld ((. feld))...
Returns expression &lus the oHset o- feld 7ithin its structure
or union.
;register<. feld ((. feld))...
Returns value at the location &ointed to 'y register &lus the
oHset o- feld 7ithin its structure or union.
5text6
Treats text as a sin.le literal ele%ent.
Ztext[
Treats Ztext[ as a strin..
YtextY
Treats YtextY as a strin..
Kcharacter
Treats character as a literal character rather than as an
o&erator or sy%'ol.
Ltext
Treats text as a co%%ent.
LLtext
Treats text as a co%%ent in a %acro that a&&ears only in the
%acro de"nition. The listin. does not sho7 text 7here the
%acro is e1&anded.
3expression
Treats the value o- expression in a %acro ar.u%ent as te1t.
M&ara%eterM
Re&laces parameter 7ith its corres&ondin. ar.u%ent value.
A"
#ee the E7TE/NDE1 directive.
ADD/
#ee the INVO0E directive.
expression1 AND expression2
Returns the result o- a 'it7ise AN9 o&eration -or expression1
and expression2.
count DUP initialvalue ((. initialvalue))...!
#&eci"es count nu%'er o- declarations o- initialvalue.
expression1 E' expression2
Returns true \1! i- expression1 e,uals expression23 or returns
-alse <! i- it does not.
expression1 GE expression2
Returns true \1! i- expression1 is .reater than or e,ual to
expression23 or returns -alse <! i- it is not.
expression1 GT expression2
Returns true \1! i- expression1 is .reater than expression23 or
returns -alse <! i- it is not.
&IG& expression
Returns the hi.h 'yte o- expression.
&IG&2O/D expression
Returns the hi.h 7ord o- expression.
expression1 LE expression2
Returns true \1! i- expression1 is less than or e,ual to
expression23 or returns -alse <! i- it is not.
LENGT& variable
Returns the nu%'er o- data ite%s in variable created 'y the
"rst initialiDer.
LENGT&O1 variable
Returns the nu%'er o- data o'Fects in variable.
LO2 expression
Returns the lo7 'yte o- expression.
LO22O/D expression
Returns the lo7 7ord o- expression.
L/O11ET expression
Returns the oHset o- expression. #a%e as O11ET3 'ut it
.enerates a loader resolved oHset3 7hich allo7s Aindo7s to
relocate code se.%ents.
expression1 LT expression2
Returns true \1! i- expression1 is less than expression23 or
returns -alse <! i- it is not.
MA0 ]recordfeldname P record^
Returns a 'it %as0 in 7hich the 'its in recordfeldname or
record are set and all other 'its are cleared.
expression1 MOD expression2
Returns the inte.er value o- the re%ainder %odulo! 7hen
dividin. expression1 'y expression2.
expression1 NE expression2
Returns true \1! i- expression1 does not e,ual expression23 or
returns -alse <! i- it does.
NOT expression
Returns expression 7ith all 'its reversed.
O11ET expression
Returns the oHset o- expression.
OPATT/ expression
Returns a 7ord de"nin. the %ode and sco&e o- expression.
The lo7 'yte is identical to the 'yte returned 'y .TYPE. The
hi.h 'yte contains additional in-or%ation.
expression1 O/ expression2
Returns the result o- a 'it7ise CR o&eration -or expression1
and expression2.
type PT/ expression
+orces the expression to 'e treated as havin. the s&eci"ed
type.
((distance)) PT/ type
#&eci"es a &ointer to type.
EG expression
Returns the se.%ent o- expression.
expression &L count
Returns the result o- shi-tin. the 'its o- expression le-t count
nu%'er o- 'its.
&O/T label
#ets the ty&e o- label to short. All Fu%&s to label %ust 'e short
7ithin the ran.e \12K to T12M 'ytes -ro% the Fu%&
instruction to label!.
expression &/ count
Returns the result o- shi-tin. the 'its o- expression ri.ht count
nu%'er o- 'its.
I8E variable
Returns the nu%'er o- 'ytes in variable allocated 'y the "rst
initialiDer.
I8EO1 ]variable P type^
Returns the nu%'er o- 'ytes in variable or type.
T&I type
Returns an o&erand o- s&eci"ed type 7hose oHset and
se.%ent values are e,ual to the current location counter
value.
.TYPE expression
#ee OPATT/.
TYPE expression
Returns the ty&e o- expression.
2IDT& ]recordfeldname P record^
Returns the 7idth in 'its o- the current recordfeldname or
record.
expression1 7O/ expression2
Returns the result o- a 'it7ise BCR o&eration -or expression1
and expression2.
%un-$ime Operators
The -ollo7in. o&erators are used only 7ithin .I13 .2&ILE3 or
./EPEAT 'loc0s and are evaluated at run ti%e3 not at asse%'ly
ti%e=
expression1 == expression2
Is e,ual to.
expression1 K= expression2
Is not e,ual to.
expression1 6 expression2
Is .reater than.
expression1 6= expression2
Is .reater than or e,ual to.
expression1 5 expression2
Is less than.
expression1 5= expression2
Is less than or e,ual to.
expression1 NN expression2
Lo.ical CR.
expression1 MM expression2
Lo.ical AN9.
expression1 M expression2
2it7ise AN9.
Kexpression
Lo.ical ne.ation.
!A//Y4
#tatus o- carry 6a..
OVE/1LO24
#tatus o- over6o7 6a..
PA/ITY4
#tatus o- &arity 6a..
IGN4
#tatus o- si.n 6a..
8E/O4
#tatus o- Dero 6a..
C H A P T E R ?
Error Messa.es >enerated 'y MA#M Co%&onents.....................3;
Error Messa.e Lists......................................................................3;
H2INC Error Messa.es.................................................................3M
ML Error Messa.es.......................................................................MG
Error Messa*es
Error Messa*es .enerated by M"SM Components
The error messages generated by MASM components fall into three categories:
u +atal errors. These indicate a severe &ro'le% that &revents the
utility -ro% co%&letin. its nor%al &rocess.
u Non-atal errors. The utility %ay co%&lete its &rocess. I- it does3
its result is not li0ely to 'e the one you 7ant.
u Aarnin.s. These %essa.es indicate conditions that %ay
&revent you -ro% .ettin. the results you 7ant.
All error %essa.es ta0e the -or%=
5tility= +ilena%e Line! = (Error ty&e^ Code!= Messa.e te1t
Utility is the &ro.ra% that sent the error %essa.e.
Filename is the "le that contains the error$.eneratin. condition.
ine is the a&&ro1i%ate line 7here the error condition e1ists.
!rror type is +atal Error3 Error3 or Aarnin..
"ode is the uni,ue G$ or ;$di.it error code.
#essage text is a short and .eneral descri&tion o- the error
condition.
Error Messa*e Lists
Messages for each utility are listed below in numerical order, with a brief
explanation of each error. The following two tables list the messages by utility
and error code, respectively.
H2INC Error Messa*es
H2INC 'atal Errors
&I$%%, error coDnt eOceeBs nL stoppinE coHpilation
Errors in the &ro.ra% 7ere too nu%erous or too severe to
allo7 recovery3 and the co%&iler %ust ter%inate.
&I$%%- DneOpecteB enBPoGPQle GoDnB
The de-ault dis0 drive did not contain su_cient s&ace -or the
co%&iler to create te%&orary "les. The s&ace re,uired is
a&&ro1i%ately t7o ti%es the siDe o- the source "le.
This %essa.e also a&&ears 7hen the RiG directive occurs
7ithout a corres&ondin. closin. RenBiG directive 7hile the RiG
test directs the co%&iler to s0i& the section.
&I$%%+ DnrecoEniCeB SaE string in option
The string in the co%%and$line option 7as not a valid o&tion.
&I$%%( no inpDt Qle speciQeB
The co%&iler 7as not .iven a "le to co%&ile.
&I$%%T coHpiler liHit : Hacros nesteB too BeeplU
Too %any %acros 7ere 'ein. e1&anded at the sa%e ti%e.
This error occurs 7hen a %acro de"nition contains %acros to
'e e1&anded and those %acros contain other %acros.
Try to s&lit the nested %acros into si%&ler %acros.
&I$%$$ coHpiler liHit : identifer : Hacro BeQnition too biE
The %acro de"nition 7as lon.er than allo7ed.
#&lit the de"nition into shorter de"nitions.
&I$%$* DnHatcVeB parentVesis nestinE P HissinE character
The &arentheses in a &re&rocessor directive 7ere not
%atched. The %issin. character is either a le-t3 3 or ri.ht3 !3
&arenthesis.
&I$%$) RiG;n<BeG eOpecteB an iBentiQer
An identi"er %ust 'e s&eci"ed 7ith the RiGBeG and RiGnBeG
directives.
&I$%$+ inFaliB inteEer constant eOpression
The e1&ression in an RiG directive either did not e1ist or did
not evaluate to a constant.
&I$%$( DneOpecteB ?ReliG?
The ReliG directive is le.al only 7hen it a&&ears 7ithin an RiG3
RiGBeG3 or RiGnBeG construct.
&I$%$T DneOpecteB ?Relse?
The Relse directive is le.al only 7hen it a&&ears 7ithin an
RiG3 RiGBeG3 or RiGnBeG construct.
&I$%*% DneOpecteB ?RenBiG?
An RenBiG directive a&&eared 7ithout a %atchin. RiG3 RiGBeG3
or RiGnBeG directive.
&I$%*$ inFaliB preprocessor coHHanB string
The characters -ollo7in. the nu%'er si.n `! did not -or% a
valid &re&rocessor directive.
&I$%** eOpecteB ?RenBiG?
An RiG3 RiGBeG3 or RiGnBeG directive 7as not ter%inated 7ith
an RenBiG directive.
&I$%*, cannot open soDrce Qle flename
The .iven "le either did not e1ist3 could not 'e o&ened3 or 7as
not -ound.
Ma0e sure the environ%ent settin.s are valid and that the
correct &ath na%e -or the "le is s&eci"ed.
I- this error a&&ears 7ithout an error %essa.e3 the co%&iler
has run out o- "le handles. I- in M#$9C#3 increase the nu%'er
o- "le handles 'y chan.in. the +ILE# settin. in CCN+I>.#L# to
allo7 a lar.er nu%'er o- o&en "les. +ILE#I2< is the
reco%%ended settin..
&I$%*- cannot open inclDBe Qle flename
The s&eci"ed "le in an RinclDBe &re&rocessor directive could
not 'e -ound.
Ma0e sure settin.s -or the INCL59E and TMP environ%ent
varia'les are valid and that the correct &ath na%e -or the "le
is s&eci"ed.
I- this error a&&ears 7ithout an error %essa.e3 the co%&iler
has run out o- "le handles. I- in M#$9C#3 increase the nu%'er
o- "le handles 'y chan.in. the +ILE# settin. in CCN+I>.#L# to
allo7 a lar.er nu%'er o- o&en "les. +ILE#I2< is the
reco%%ended settin..
&I$%*) parser stacI oFerSoW. please siHpliGU UoDr proEraH
The &ro.ra% cannot 'e &rocessed 'ecause the s&ace re,uired
to &arse the &ro.ra% causes a stac0 over6o7 in the co%&iler.
#i%&li-y the &ro.ra% 'y decreasin. the co%&le1ity o-
e1&ressions. 9ecrease the level o- nestin. in -or and s7itch
state%ents 'y &uttin. so%e o- the %ore dee&ly nested
state%ents in se&arate -unctions. 2rea0 u& very lon.
e1&ressions involvin. a3a o&erators or -unction calls.
&I$%,, cannot open asseHblU lanEDaEe oDtpDt Qle flename
There are several &ossi'le causes -or this error=
u The .iven na%e is not valid
u The "le cannot 'e o&ened -or lac0 o- s&ace.
u A read$only "le 7ith the .iven na%e already e1ists.
&I$%,) cannot open soDrce listinE Qle flename
There are several &ossi'le causes -or this error=
u The .iven na%e is not valid.
u The "le cannot 'e o&ened -or lac0 o- s&ace.
u A read$only "le 7ith the .iven na%e already e1ists.
&I$%,T DnrecoFerable Veap oFerSoW in Pass ,
The &osto&ti%iDer co%&iler &ass over6o7ed the hea& and
could not continue.
Cne o- the -ollo7in. %ay 'e a solution=
u 2rea0 u& the -unction containin. the line that caused the
error.
u Reco%&ile 7ith the *Cd o&tion3 re%ovin. o&ti%iDation.
u In M#$9C#3 re%ove other &ro.ra%s or drivers runnin. in
the syste% 7hich could 'e consu%in. si.ni"cant a%ounts
o- %e%ory.
u In M#$9C#3 i- usin. NMAEE3 co%&ile 7ithout usin. NMAEE.
&I$%-% DneOpecteB enBPoGPQle in soDrce Qle flename
The co%&iler detected an une1&ected end$o-$"le condition
7hile creatin. a source listin. or %in.led source*o'Fect listin..
&I$%-+ liHit oG option eOceeBeB at string
The .iven o&tion 7as s&eci"ed too %any ti%es. The .iven
strin. is the ar.u%ent to the o&tion that caused the error.
I- the CL or H2INC environ%ent varia'les have 'een set3
o&tions in these varia'les are read 'e-ore o&tions s&eci"ed on
the co%%and line. The CL environ%ent varia'le is read 'e-ore
the H2INC environ%ent varia'le.
&I$%-(
This error e1isted in &revious versions o- H2INC as Zun0no7n
o&tion character in option.[ This condition no7 .enerates
7arnin. HI?Mbb.
&I$%-T
This error e1isted in &revious versions o- H2INC as Zinvalid
nu%erical ar.u%ent string.[ This condition no7 .enerates
7arnin. HI?<G2.
&I$%#% segment : coBe seEHent too larEe
A code se.%ent .re7 to 7ithin 3; 'ytes o- ;?E durin.
co%&ilation.
A 3;$'yte &ad is used 'ecause o- a 'u. in so%e K<2K; chi&s
that can cause &ro.ra%s to e1hi'it stran.e 'ehavior 7hen3
a%on. other conditions3 the siDe o- a code se.%ent is 7ithin
3; 'ytes o- ;?E.
&I$%#* coHpiler liHit : RiGJRiGBeG nesteB too BeeplU
The &ro.ra% e1ceeded the %a1i%u% o- 32 nestin. levels -or
RiG and RiGBeG directives.
&I$%#, coHpiler liHit : strDctJDnion nesteB too BeeplU
A structure or union de"nition 7as nested to %ore than 1G
levels.
2rea0 the structure or union into t7o &arts 'y de"nin. one or
%ore o- the nested structures usin. tUpeBeG.
&I$%T% segment Bata allocation eOceeBs )-0
The siDe o- the na%ed se.%ent e1ceeds ;?E.
This error occurs 7ith XbaseB allocation.
&I$(%%
This error e1isted in &revious versions o- H2INC as Zoption=
unreco.niDed o&tion.[ This condition no7 .enerates 7arnin.
HI?Mbb.
&I$(%$ incoHplete HoBel speciQcation
Cnly &art o- a custo% %e%ory$%odel s&eci"cation 7as
s&eci"ed on the co%%and line.
Ahen you s&eci-y a custo% %e%ory %odel 7ith the *A
co%%and$line o&tion3 you %ust s&eci-y code &ointer distance3
data &ointer distance3 and 9# re.ister setu&. This error is
e,uivalent to the 92<13 error %essa.e -or CL.
H2INC Non&atal Errors
&I*%%% UN0NO2N E//O/ !ontact MicrosoGt ProBDct Dpport
erFices
The co%&iler detected an un0no7n error condition.
Note the circu%stances o- the error and noti-y Microso-t
Cor&oration 'y -ollo7in. the instructions in the ZMicroso-t
#u&&ort #ervices[ section o- the introduction to this 'oo0.
&I*%%$ neWline in constant
A strin. constant 7as continued onto a second line 7ithout
either a 'ac0slash or closin. and o&enin. ,uotes.
To 'rea0 a strin. constant onto t7o lines in the source "le3 do
one o- the -ollo7in.=
u End the "rst line 7ith the line$continuation character3 a
'ac0slash3 c .
u Close the strin. on the "rst line 7ith a dou'le ,uotation
%ar03 and o&en the strin. on the ne1t line 7ith another
,uotation %ar0.
It is not su_cient to end the "rst line 7ith cn3 the esca&e
se,uence -or e%'eddin. a ne7line character in a strin.
constant.
The -ollo7in. t7o e1a%&les de%onstrate causes o- this error=
&rint-dHello3
7orldd!N
or
&rint-dHello3cn
7orldd!N
The -ollo7in. t7o e1a%&les sho7 7ays to correct this error=
&rint-dHello3c
7orldd!N
or
&rint-dHello3d
d 7orldd!N
Note that any s&aces at the 'e.innin. o- the ne1t line a-ter a
line$continuation character are included in the strin. constant.
Note3 also3 that neither solution actually &laces a ne7line
character into the strin. constant. To e%'ed this character=
&rint-dHello3cnc
7orldd!N
or
&rint-dHello3c
cn7orldd!N
or
&rint-dHello3cnd
d7orldd!N
or
&rint-dHello3d
dcn7orldd!N
&I*%%, eOpecteB defned id
An identi"er 7as e1&ected a-ter the &re&rocessin. 0ey7ord
defned.
&I*%%- eOpecteB defned$id%
An identi"er 7as e1&ected a-ter the le-t &arenthesis3 3
-ollo7in. the &re&rocessin. 0ey7ord defned.
&I*%%# Rline eOpecteB a line nDHber. GoDnB token
A Rline directive lac0ed the re,uired line$nu%'er
s&eci"cation.
&I*%%) RinclDBe eOpecteB a Qle naHe. GoDnB token
An RinclDBe directive lac0ed the re,uired "le$na%e
s&eci"cation.
&I*%%+ RBeQne sUntaO
An identi"er 7as e1&ected -ollo7in. RBeQne in a
&re&rocessin. directive.
&I*%%( character : DneOpecteB in Hacro BeQnition
The .iven character 7as -ound i%%ediately -ollo7in. the
na%e o- the %acro.
&I*%%T reDse oG Hacro GorHal identifer
The .iven identi"er 7as used %ore than once in the -or%al
&ara%eter list o- a %acro de"nition.
&I*%$% character : DneOpecteB in Hacro GorHalPparaHeter list
The .iven character 7as used incorrectly in the -or%al
&ara%eter list o- a %acro de"nition.
&I*%$* HissinE naHe GolloWinE ?5?
An RinclDBe directive lac0ed the re,uired "lena%e
s&eci"cation.
&I*%$, HissinE ?6?
The closin. an.le 'rac0et Q! 7as %issin. -ro% an RinclDBe
directive.
&I*%$- preprocessor coHHanB HDst start as Qrst nonPWViteP
space
Non$7hite$s&ace characters a&&eared 'e-ore the nu%'er si.n
`! o- a &re&rocessor directive on the sa%e line.
&I*%$# too HanU cVaracters in constant
A character constant contained %ore than one character.
Note that an esca&e se,uence -or e1a%&le3 c t -or ta'! is
converted to a sin.le character.
&I*%$) no closinE sinEle YDotation HarI
A ne7line character 7as -ound 'e-ore the closin. sin.le
,uotation %ar0 o- a character constant.
&I*%$+ illeEal escape seYDence
An esca&e se,uence a&&eared 7here one 7as not e1&ected.
An esca&e se,uence a 'ac0slash3 c 3 -ollo7ed 'y a nu%'er or
letter! %ay occur only in a character or strin. constant.
&I*%$( DnInoWn cVaracter hexnumber
The A#CII character corres&ondin. to the .iven he1adeci%al
nu%'er a&&eared in the source "le 'ut is an ille.al character.
Cne &ossi'le cause o- this error is corru&tion o- the source "le.
Edit the "le and loo0 at the line on 7hich the error occurred.
&I*%$T eOpecteB preprocessor BirectiFe. GoDnB character
The .iven character -ollo7ed a nu%'er si.n `!3 'ut it 7as not
the "rst letter o- a &re&rocessor directive.
&I*%*$ eOpecteB eOponent FalDe. not character
The .iven character 7as used as the e1&onent o- a 6oatin.$
&oint constant 'ut 7as not a valid nu%'er.
&I*%** number : too biE Gor cVaracter
The octal nu%'er -ollo7in. a 'ac0slash c! in a character or
strin. constant 7as too lar.e to 'e re&resented as a character.
&I*%*# identifer : enDHJstrDctJDnion tUpe reBeQnition
The .iven identi"er had already 'een used -or an
enu%eration3 structure3 or union ta..
&I*%*) identifer : HeHber oG enDH reBeQnition
The .iven identi"er has already 'een used -or an enu%eration
constant3 either 7ithin the sa%e enu%eration ty&e or 7ithin
another visi'le enu%eration ty&e.
&I*%*+ Dse oG DnBeQneB enDHJstrDctJDnion identifer
The .iven identi"er re-erred to a structure or union ty&e that
7as not de"ned.
&I*%*( strDctJDnion HeHber neeBs to be insiBe a
strDctJDnion
#tructure and union %e%'ers %ust 'e declared 7ithin the
structure or union.
This error %ay 'e caused 'y an enu%eration declaration
containin. a declaration o- a structure %e%'er3 as in the
-ollo7in. e1a%&le=
enu% a ]
Fanuary3
-e'ruary3
int %archN *: Ille.al structure declaration :*
^N
&I*%,% identifer : strDctJDnion HeHber reBeQnition
The identi"er 7as used -or %ore than one %e%'er o- the
sa%e structure or union.
&I*%,$ identifer : GDnction cannot be strDctJDnion HeHber
The .iven -unction 7as declared to 'e a %e%'er o- a
structure or union.
To correct this error3 use a &ointer to the -unction instead.
&I*%,, identifer : bit QelB cannot VaFe inBirection
The .iven 'it "eld 7as declared as a &ointer :!3 7hich is not
allo7ed.
&I*%,- identifer : tUpe oG bit QelB too sHall Gor nDHber oG bits
The nu%'er o- 'its s&eci"ed in the 'it$"eld declaration
e1ceeded the nu%'er o- 'its in the .iven 'ase ty&e.
&I*%,# strDctJDnion identifer : DnInoWn siCe
The .iven structure or union had an unde"ned siDe.
5sually this occurs 7hen re-erencin. a declared 'ut not
de"ned structure or union ta..
+or e1a%&le3 the -ollo7in. code causes this error=
struct sOta. :&sN
&s I V%yOvarN
:&s I 1MN *: This line causes the error :*
&I*%,+ leGt oG operator speciQes DnBeQneB strDctJDnion
identifer
The e1&ression 'e-ore the %e%'er$selection o&erator $Q or .!
identi"ed a structure or union ty&e that 7as not de"ned.
&I*%,( identifer : not strDctJDnion HeHber
The .iven identi"er 7as used in a conte1t that re,uired a
structure or union %e%'er.
&I*%-$ illeEal BiEit character Gor base number
The .iven character 7as not a le.al di.it -or the 'ase used.
&I*%-* siEneBJDnsiEneB IeUWorBs HDtDallU eOclDsiFe
The 0ey7ords signed and unsigned 7ere 'oth used in a sin.le
declaration3 as in the -ollo7in. e1a%&le=
unsi.ned si.ned int iN
&I*%#) illeEal eOpression
An e1&ression 7as ille.al 'ecause o- a &revious error3 7hich
%ay not have &roduced an error %essa.e.
&I*%#+ eOpecteB constant eOpression
The conte1t re,uires a constant e1&ression.
&I*%#( constant eOpression is not inteEral
The conte1t re,uires an inte.ral constant e1&ression.
&I*%#T sUntaO error : token
The to0en caused a synta1 error.
&I*%)% sUntaO error : enBPoGPQle GoDnB
The co%&iler e1&ected at least one %ore to0en.
#o%e causes o- this error include=
u C%ittin. a se%icolon N!3 as in
int :&
u C%ittin. a closin. 'race ^! -ro% the last -unction3 as in
%ain!
]
&I*%)$ sUntaO error : iBentiQer identifer
The identi"er caused a synta1 error.
&I*%)* tUpe type DneOpecteB
The co%&iler did not e1&ect the .iven ty&e to a&&ear here3
&ossi'ly 'ecause it already had a re,uired ty&e.
&I*%), identifer : not a GDnction
The .iven identi"er 7as not declared as a -unction3 'ut an
atte%&t 7as %ade to use it as a -unction.
&I*%)- terH Boes not eFalDate to a GDnction
An atte%&t 7as %ade to call a -unction throu.h an e1&ression
that did not evaluate to a -unction &ointer.
&I*%)# identifer : DnBeQneB
An atte%&t 7as %ade to use an identi"er that 7as not
de"ned.
&I*%)) cast to GDnction tUpe is illeEal
An o'Fect 7as cast to a -unction ty&e3 7hich is ille.al.
Ho7ever3 it is le.al to cast an o'Fect to a -unction &ointer.
&I*%)+ cast to arraU tUpe is illeEal
An o'Fect 7as cast to an array ty&e.
&I*%)( illeEal cast
A ty&e used in a cast o&eration 7as not le.al -or this
e1&ression.
&I*%)T cast oG FoiB terH to nonFoiB
The void ty&e 7as cast to a diHerent ty&e.
&I*%+% illeEal siCeoG operanB
The o&erand o- a siCeoG e1&ression 7as not an identi"er or a
ty&e na%e.
&I*%+$ identifer : illeEal storaEe class
The .iven stora.e class cannot 'e used in this conte1t.
&I*%+* identifer : initialiCation oG a GDnction
An atte%&t 7as %ade to initialiDe a -unction.
&I*%-, illeEal breaI
A 'rea0 state%ent is le.al only 7ithin a do3 -or3 7hile3 or
s7itch state%ent.
&I*%-- illeEal continDe
A continue state%ent is le.al only 7ithin a do3 -or3 or 7hile
state%ent.
&I*%-# identifer : label reBeQneB
The la'el a&&eared 'e-ore %ore than one state%ent in the
sa%e -unction.
&I*%-) illeEal case
The 0ey7ord case %ay a&&ear only 7ithin a s7itch state%ent.
&I*%-+ illeEal BeGaDlt
The 0ey7ord de-ault %ay a&&ear only 7ithin a s7itch
state%ent.
&I*%-( Hore tVan one BeGaDlt
A s7itch state%ent contained %ore than one de-ault la'el.
&I*%-T case FalDe value alreaBU DseB
The case value 7as already used in this s7itch state%ent.
&I*%#% noninteEral sWitcV eOpression
A s7itch e1&ression did not evaluate to an inte.ral value.
&I*%#$ case eOpression not constant
Case e1&ressions %ust 'e inte.ral constants.
&I*%#* case eOpression not inteEral
Case e1&ressions %ust 'e inte.ral constants.
&I*%#- eOpecteB ?9? to GolloW identifer
The conte1t re,uires &arentheses a-ter the -unction identi"er.
Cne cause o- this error is -or.ettin. an e,ual si.n I! on a
co%&le1 initialiDation3 as in
int array1() *: Missin. I :*
]
13233
^N
&I*%## eOpecteB GorHalPparaHeter list. not a tUpe list
An ar.u%ent$ty&e list a&&eared in a -unction de"nition instead
o- a -or%al &ara%eter list.
&I*%+# identifer : arraU initialiCation neeBs cDrlU braces
There 7ere no 'races3 ]^3 around the .iven array initialiDer.
&I*%+) identifer : strDctJDnion initialiCation neeBs cDrlU
braces
There 7ere no 'races3 ]^3 around the .iven structure or union
initialiDer.
&I*%++ nonscalar QelB initialiCer identifer
An atte%&t 7as %ade to initialiDe a 'it$"eld %e%'er o- a
structure 7ith a nonscalar value.
&I*%+( too HanU initialiCers
The nu%'er o- initialiDers e1ceeded the nu%'er o- o'Fects to
'e initialiDed.
&I*%+T identifer Dses DnBeQneB strDctJDnion name
The identifer 7as declared as structure or union ty&e na%e3
'ut the name had not 'een de"ned. This error %ay also occur
i- an atte%&t is %ade to initialiDe an anony%ous union.
&I*%(% illeEal Gar XGastcall GDnction
A -ar XGastcall -unction %ay not 'e co%&iled 7ith the *>7
o&tion3 or 7ith the *>, o&tion i- stac0 chec0in. is ena'led.
&I*%(* reBeQnition oG GorHal paraHeter identifer
A -or%al &ara%eter to a -unction 7as redeclared 7ithin the
-unction 'ody.
&I*%(- GDnction function alreaBU Vas a boBU
The -unction has already 'een de"ned.
&I*%() identifer : reBeQnition
The .iven identi"er 7as de"ned %ore than once3 or a
su'se,uent declaration diHered -ro% a &revious one.
The -ollo7in. are 7ays to cause this error=
int aN
char aN
%ain!
]
^
%ain!
]
int aN
int aN
^
Ho7ever3 the -ollo7in. does not cause this error=
int aN
int aN
%ain!
]
^
&I*%(+ identifer : HissinE sDbscript
The de"nition o- an array 7ith %ulti&le su'scri&ts 7as %issin.
a su'scri&t value -or a di%ension other than the "rst
di%ension.
The -ollo7in. is an e1a%&le o- an ille.al de"nition=
int -unca!
char a(1<)()N
] ^
The -ollo7in. is an e1a%&le o- a le.al de"nition=
int -unca!
char a()(G)N
] ^
&I*%T% GDnction retDrns arraU
A -unction cannot return an array. It can return a &ointer to an
array.
&I*%T$ GDnction retDrns GDnction
A -unction cannot return a -unction. It can return a &ointer to a
-unction.
&I*%T* arraU eleHent tUpe cannot be GDnction
Arrays o- -unctions are not allo7ed. Arrays o- &ointers to
-unctions are allo7ed.
&I*%T# function : actDal Vas tUpe FoiB : paraHeter number
An atte%&t 7as %ade to &ass a void ar.u%ent to a -unction.
The .iven nu%'er indicates 7hich ar.u%ent 7as in error.
+or%al &ara%eters and ar.u%ents to -unctions cannot have
ty&e void. They can3 ho7ever3 have ty&e void : &ointer to
void!.
&I*$%% illeEal inBirection
The indirection o&erator :! 7as a&&lied to a non&ointer value.
&I*$%$ ?M? on constant
The address$o- o&erator M! did not have an lFalDe as its
o&erand.
&I*$%* ?M? reYDires lFalDe
The address$o- o&erator M! %ust 'e a&&lied to an lFalDe
e1&ression.
&I*$%, ?M? on reEister Fariable
An atte%&t 7as %ade to ta0e the address o- a re.ister
varia'le.
&I*$%- ?M? on bit QelB iEnoreB
An atte%&t 7as %ade to ta0e the address o- a 'it "eld.
&I*$%# operator neeBs lFalDe
The .iven o&erator did not have an lFalDe o&erand.
&I*$%) operator : leGt operanB HDst be lFalDe
The le-t o&erand o- the .iven o&erator 7as not an lvalue.
&I*$%+ illeEal inBeO. inBirection not alloWeB
A su'scri&t 7as a&&lied to an e1&ression that did not evaluate
to a &ointer.
&I*$%( noninteEral inBeO
A noninte.ral e1&ression 7as used in an array su'scri&t.
&I*$%T sDbscript on nonarraU
A su'scri&t 7as used on a varia'le that 7as not an array.
&I*$$% pointer > pointer
An atte%&t 7as %ade to add one &ointer to another usin. the
&lus T! o&erator.
&I*$$$ pointer > noninteEral FalDe
An atte%&t 7as %ade to add a noninte.ral value to a &ointer.
&I*$$* illeEal pointer sDbtraction
An atte%&t 7as %ade to su'tract &ointers that did not &oint to
the sa%e ty&e.
&I*$$, pointer sDbtracteB GroH nonpointer
The ri.ht o&erand in a su'traction o&eration usin. the %inus
$! o&erator 7as a &ointer3 'ut the le-t o&erand 7as not.
&I*$$- operator : pointer on leGtL neeBs inteEral riEVt
The le-t o&erand o- the .iven o&erator 7as a &ointerN so the
ri.ht o&erand %ust 'e an inte.ral value.
&I*$$# identifer : incoHpatible tUpes
An e1&ression contained inco%&ati'le ty&es.
&I*$$+ operator : illeEal Gor strDctJDnion
#tructure and union ty&e values are not allo7ed 7ith the .iven
o&erator.
&I*$$( neEatiFe sDbscript
A value de"nin. an array siDe 7as ne.ative.
&I*$*% FoiB illeEal WitV all tUpes
The void ty&e 7as used in a declaration 7ith another ty&e.
&I*$*$ operator : baB leGtJriEVt operanB
The le-t or ri.ht o&erand o- the .iven o&erator 7as ille.al -or
that o&erator.
&I*$*- BiFiBe or HoB bU Cero
A constant e1&ression 7as evaluated and -ound to have a Dero
deno%inator.
&I*$*( identifer : VDEe arraU cannot be aliEneB to seEHent
boDnBarU
The .iven hu.e array 7as lar.e enou.h to cross t7o se.%ent
'oundaries3 'ut could not 'e ali.ned to 'oth 'oundaries to
&revent an individual array ele%ent -ro% crossin. a 'oundary.
I- the siDe o- a hu.e array causes it to cross t7o 'oundaries3
the siDe o- each array ele%ent %ust 'e a &o7er o- t7o3 so that
a 7hole nu%'er o- ele%ents 7ill "t 'et7een t7o se.%ent
'oundaries.
&I*$*T static GDnction function not GoDnB
A -or7ard re-erence 7as %ade to a static -unction that 7as
never de"ned.
&I*$,% Rline eOpecteB a strinE containinE tVe Qle naHe.
GoDnB token
The o&tional to0en -ollo7in. the line nu%'er on a Rline
directive 7as not a strin..
&I*$,$ Hore tVan one HeHorU attribDte
More than one o- the 0ey7ords Xnear. XGar. XVDEe3 or XbaseB
7ere a&&lied to an ite%3 as in the -ollo7in. e1a%&le=
ty&ede- int Onear nintN
nint O-ar aN *: Ille.al :*
&I*$,* sUntaO error : DneOpecteB iBentiQer
An identi"er a&&eared in a syntactically ille.al conte1t.
&I*$,, identifer : DnInoWn siCe
An atte%&t 7as %ade to declare an unsiDed array as a local
varia'le.
&I*$,- identifer : strDctJDnion too larEe
The siDe o- a structure or union e1ceeded the ;?E co%&iler
li%it.
&I*$,) function : prototUpe HDst VaFe paraHeter tUpes
A -unction &rototy&e declarator had -or%al &ara%eter na%es3
'ut no ty&es 7ere &rovided -or the &ara%eters.
A -or%al &ara%eter in a -unction &rototy&e %ust either have a
ty&e or 'e re&resented 'y an elli&sis ...! to indicate a varia'le
nu%'er o- ar.u%ents and no ty&e chec0in..
Cne cause o- this error is a %iss&ellin. o- a ty&e na%e in a
&rototy&e that does not &rovide the na%es o- -or%al
&ara%eters.
&I*$,+ eHptU cVaracter constant
The ille.al e%&ty character constant aa! 7as used.
&I*$,T tUpe GolloWinE identifer is illeEal
T7o ty&es 7ere used in the sa%e declaration.
+or e1a%&le=
int dou'le aN
&I*$-$ FalDe oDt oG ranEe Gor enDH constant
An enu%eration constant had a value outside the ran.e o-
values allo7ed -or ty&e int.
&I*$-, sUntaO error : HissinE token1 beGore token2
The co%&iler e1&ected token1 to a&&ear 'e-ore token2.
This %essa.e %ay a&&ear i- a re,uired closin. 'race ^!3 ri.ht
&arenthesis !!3 or se%icolon N! is %issin..
&I*$-- sUntaO error : HissinE token beGore tUpe type
The co%&iler e1&ected the .iven to0en to a&&ear 'e-ore the
.iven ty&e na%e.
This %essa.e %ay a&&ear i- a re,uired closin. 'race ^!3 ri.ht
&arenthesis !!3 or se%icolon N! is %issin..
&I*$-# sUntaO error : HissinE token beGore iBentiQer
The co%&iler e1&ected the .iven to0en to a&&ear 'e-ore an
identi"er.
This %essa.e %ay a&&ear i- a se%icolon N! does not a&&ear
a-ter the last declaration o- a 'loc0.
&I*$-) sUntaO error : HissinE token beGore iBentiQer identifer
The co%&iler e1&ected the .iven to0en to a&&ear 'e-ore the
.iven identi"er.
&I*$-+ DnInoWn siCe
An atte%&t 7as %ade to incre%ent an inde1 or &ointer to an
array 7hose 'ase ty&e has not yet 'een declared.
&I*$-( arraU too larEe
An array e1ceeded the %a1i%u% le.al siDe o- ;?E.
Reduce the siDe o- the array3 or declare it 7ith XVDEe.
&I*$-T identifer : naHeB bit QelB cannot VaFe % WiBtV
The .iven na%ed 'it "eld had Dero 7idth. Cnly unna%ed 'it
"elds are allo7ed to have Dero 7idth.
&I*$#% identifer : bit QelB HDst VaFe tUpe int. siEneB int. or
DnsiEneB int
The AN#I C standard re,uires 'it "elds to have ty&es o- int3
si.ned int3 or unsi.ned int. This %essa.e a&&ears only 7hen
co%&ilin. 7ith the *4a o&tion.
&I*$#$ Hore tVan one lanEDaEe attribDte
More than one 0ey7ord s&eci-yin. a callin. convention -or a
-unction 7as .iven.
&I*$#* identifer : pointers to GDnctions WitV BiZerent
attribDtes
An atte%&t 7as %ade to assi.n a &ointer to a -unction
declared 7ith one callin. convention XcBecl. XGortran.
Xpascal3 or XGastcall! to a &ointer to a -unction declared 7ith
a diHerent callin. convention.
&I*$#, VeO constants HDst VaFe at least $ VeO BiEit
The he1adeci%al constants <13 <B and c1 are ille.al. At least
one he1adeci%al di.it %ust -ollo7 the 1 or B.
&I*$#- segment : Boes not reGer to a seEHent naHe
A XbaseB$allocated varia'le %ust 'e allocated in a se.%ent
unless it is e1tern and uninitialiDed.
&I*$#) praEHa HDst be oDtsiBe GDnction
A &ra.%a that %ust 'e s&eci"ed at a .lo'al level3 outside a
-unction 'ody3 occurred 7ithin a -unction.
+or e1a%&le3 the -ollo7in. causes this error=
%ain!
]
`&ra.%a o&ti%iDedld3 on!
^
&I*$#+ function : HDst be BeclareB beGore Dse in praEHa list
The -unction na%e in the list o- -unctions -or an allocXteOt
&ra.%a has not 'een declared 'e-ore 'ein. re-erenced in the
list.
&I*$#( identifer : is a GDnction
The .iven identi"er 7as s&eci"ed in the list o- varia'les in a
saHeXseE &ra.%a 'ut 7as &reviously declared as a -unction.
&I*$#T Hore tVan one storaEe class speciQeB
A declaration contained %ore than one stora.e class3 as in
e1tern static int iN
&I*$)% RR cannot occDr at tVe beEinninE oG a Hacro
BeQnition
A %acro de"nition 'e.an 7ith a to0en$&astin. o&erator ``!3
as in
`de"ne %aca3'! ``a
&I*$)$ RR cannot occDr at tVe enB oG a Hacro BeQnition
A %acro de"nition ended 7ith a to0en$&astin. o&erator ``!3
as in
`de"ne %aca3'! a``
&I*$)* eOpecteB Hacro GorHal paraHeter
The to0en -ollo7in. a strin.iDin. o&erator `! 7as not a -or%al
&ara%eter na%e.
+or e1a%&le=
`de"ne &rinta! &rint-`'!
&I*$)# keyword : cannot HoBiGU pointers to Bata
The XGortran. Xpascal. XcBecl3 or XGastcall 0ey7ord 7as
used ille.ally to %odi-y a &ointer to data3 as in the -ollo7in.
e1a%&le=
char O&ascal :&N
&I*$)) lFalDe speciQes const ob[ect
An atte%&t 7as %ade to %odi-y an ite% declared 7ith const
ty&e.
&I*$)+ function : too HanU actDal paraHeters Gor intrinsic
GDnction
A re-erence to the intrinsic -unction na%e contained too %any
actual &ara%eters.
&I*$)( function : too GeW actDal paraHeters Gor intrinsic
GDnction
A re-erence to the intrinsic -unction na%e contained too -e7
actual &ara%eters.
&I*$+$ operator : illeEal operanB
The .iven unary o&erator 7as used 7ith an ille.al o&erand
ty&e3 as in the -ollo7in. e1a%&le=
int :-&!!N
dou'le d3d1N
-&TTN
d I ed1N
&I*$+* function : actDal is not a pointer : paraHeter number
An atte%&t 7as %ade to &ass an ar.u%ent that 7as not a
&ointer to a -unction that e1&ected a &ointer. The .iven
nu%'er indicates 7hich ar.u%ent 7as in error.
&I*$+, function : actDal is not a pointer : paraHeter number1.
paraHeter list number2
An atte%&t 7as %ade to &ass a non&ointer ar.u%ent to a
-unction that e1&ected a &ointer.
This error occurs in calls that return a &ointer to a -unction.
The "rst nu%'er indicates 7hich ar.u%ent 7as in errorN the
second nu%'er indicates 7hich ar.u%ent list contained the
invalid ar.u%ent.
&I*$+- function : actDal Vas tUpe FoiB : paraHeter number1.
paraHeter list number2
An atte%&t 7as %ade to &ass a void ar.u%ent to a -unction.
+or%al &ara%eters and ar.u%ents to -unctions cannot have
ty&e void. They can3 ho7ever3 have ty&e void : &ointer to
void!.
This error occurs in calls that return a &ointer to a -unction.
The "rst nu%'er indicates 7hich ar.u%ent 7as in errorN the
second nu%'er indicates 7hich ar.u%ent list contained the
invalid ar.u%ent.
&I*$++ constant too biE
In-or%ation 7as lost 'ecause a constant value 7as too lar.e
to 'e re&resented in the ty&e to 7hich it 7as assi.ned.
&I*$+( identifer : storaEe class Gor saHeXseE Fariables HDst
be eOtern
The .iven varia'le 7as s&eci"ed in a saHeXseE &ra.%a3 'ut
it 7as not declared 7ith e1tern stora.e class.
&I*$+T identifer : Was DseB in saHeXseE. bDt storaEe class is
no lonEer eOtern
The .iven varia'le 7as s&eci"ed in a saHeXseE &ra.%a3 'ut
it 7as redeclared 7ith a stora.e class other than e1tern.
&I*$(# identifer : illeEal XbaseB allocation
A XbaseB$allocated varia'le that e1&licitly has e1tern stora.e
class and is uninitialiDed %ay not have a 'ase o- any o- the
-ollo7in.=
Ose.%ent! V var
Ose.na%edO#TACEd!
Ose.%ent!Osel-
void
I- the varia'le does not e1&licitly have e1tern stora.e class or
it is uninitialiDed3 then its 'ase %ust use XseEnaHedstringd!
7here string is any se.%ent na%e or reserved se.%ent na%e
e1ce&t dO#TACEd.
&I*$(+ cast oG near GDnction pointer to Gar GDnction pointer
An atte%&t 7as %ade to cast a near -unction &ointer as a -ar
-unction &ointer.
&I*$(T Rerror : string
An Rerror directive 7as encountered. The string is the
descri&tive te1t su&&lied in the directive.
&I*$T, identifer : alreaBU in a seEHent
A varia'le in the saHeXseE &ra.%a has already 'een
allocated in a se.%ent3 usin. XbaseB.
&I*$T- segment : is a teOt seEHent
The .iven te1t se.%ent 7as used 7here a data3 const3 or 'ss
se.%ent 7as e1&ected.
&I*$T# segment : is a Bata seEHent
The .iven data se.%ent 7as used 7here a te1t se.%ent 7as
e1&ected.
&I**%% function : GDnction Vas alreaBU been BeQneB
A -unction na%e &assed as an ar.u%ent in an allocXteOt
&ra.%a has already 'een de"ned.
&I**%$ function : storaEe class HDst be eOtern
A -unction declaration a&&ears 7ithin a 'loc03 'ut the -unction
is not declared e1tern. This causes an error i- the *4a o&tion is
in eHect.
+or e1a%&le3 the -ollo7in. causes this error3 7hen co%&iled
7ith *4a=
%ain!
]
static int -unc1!N
^
&I**%# identifer : cannot initialiCe eOtern blocIPscopeB
Fariables
A varia'le 7ith e1tern stora.e class %ay not 'e initialiDed in a
-unction.
&I**%( no HeHbers BeQneB DsinE tVis tUpe
An enDH3 strDct3 or Dnion 7as de"ned 7ithout any
%e%'ers. This is an error only 7hen co%&ilin. 7ith *4aN
other7ise3 it is a 7arnin..
&I**%T tUpe cast in XbaseB constrDct HDst be 9XseEHent:
The only ty&e allo7ed 7ithin a cast in a XbaseB declarator is
XseEHent!.
&I**$% identifer : HDst be nearJGar Bata pointer
The 'ase in a XbaseB declarator %ust not 'e an array3 a
-unction3 or a XbaseB &ointer.
&I**$$ 9XseEHent: applieB to GDnction iBentiQer function
The ite% cast in a XbaseB declarator %ust not 'e a -unction.
&I**$* identifer : XbaseB not aFailable Gor GDnctionsJpointers
to GDnctions
+unctions cannot 'e XbaseB$allocated. 5se the allocXteOt
&ra.%a.
&I**$, identifer : illeEal arEDHent to XbaseB
A sy%'ol used as a 'ase %ust have ty&e XseEHent or 'e a
near or -ar &ointer.
&I**$- pointers baseB on FoiB reYDire tVe Dse oG :6
A XbaseB &ointer 'ased on void cannot 'e dere-erenced. 5se
the =Q o&erator to create an address that can 'e
dere-erenced.
&I**$# :6 operator onlU Gor ob[ects baseB on FoiB
The ri.ht o&erand o- the =Q o&erator %ust 'e a &ointer 'ased
on void3 as in
char O'asedvoid! :c'v&i
&I**$) attribute1 HaU not be DseB WitV attribute2
The .iven -unction attri'utes are inco%&ati'le.
#o%e co%'inations o- attri'utes that cause this error are=
u XsaFereEs and XinterrDpt
u XGastcall and XsaFereEs
u XGastcall and XinterrDpt
u XGastcall and XeOport
&I**$+ attribute1 HDst be DseB WitV attribute2
The "rst -unction attri'ute re,uires the second attri'ute to 'e
used.
#o%e causes -or this error include=
u An interru&t -unction e1&licitly declared as near. Interru&t
-unctions %ust 'e -ar.
u An interru&t -unction or a -unction 7ith a varia'le nu%'er o-
ar.u%ents3 7hen that -unction is declared 7ith the
XGortran3 X pascal3 or XGastcall attri'ute. +unctions
declared 7ith the XinterrDpt attri'ute or 7ith a varia'le
nu%'er o- ar.u%ents %ust use the C callin. conventions.
Re%ove the XGortran3 X pascal3 or XGastcall attri'ute -ro%
the -unction declaration.
&I**$( tUpe in XbaseB constrDct HDst be FoiB
The only ty&e allo7ed 7ithin a XbaseB construct is void.
&I**$T sUntaO error : tUpe YDaliQer HDst be aGter ?*?
Either const or volatile a&&eared 7here a ty&e or ,uali"er is
not allo7ed3 as in
int const :&!N
&I***% WarninE treateB as error P no ob[ect Qle EenerateB
Ahen the co%&iler o&tion *AB is used3 the "rst 7arnin.
.enerated 'y the co%&iler causes this error %essa.e to 'e
dis&layed.
Either correct the condition that caused the 7arnin.3 or
co%&ile at a lo7er 7arnin. level or 7ithout *AB.
&I***$ ?.? : leGt operanB points to strDctJDnion. Dse ?P6?
The le-t o&erand o- the a.a o&erator %ust 'e a strDctJDnion
ty&e. It cannot 'e a &ointer to a strDctJDnion ty&e.
This error usually %eans that a P6 o&erator %ust 'e used.
&I**** P6 : leGt operanB Vas strDctJDnion tUpe. Dse ?.?
The le-t o&erand o- the P6 o&erator %ust 'e a &ointer to a
strDctJDnion ty&e. It cannot 'e a strDctJDnion ty&e.
This error usually %eans that a a.a o&erator %ust 'e used.
&I***, leGt oG &'member HDst point to strDctJDnion
The le-t o&erand o- the P6 o&erator is not a &ointer to a
strDctJDnion ty&e.
This error can occur 7hen the le-t o&erand is an unde"ned
varia'le. 5nde"ned varia'les have ty&e int.
&I***- leGt oG .member HDst VaFe strDctJDnion tUpe
The le-t o&erand o- the a.a o&erator is not a strDctJDnion ty&e.
This error can occur 7hen the le-t o&erand is an unde"ned
varia'le. 5nde"ned varia'les have ty&e int.
&I***# tagname : Qrst HeHber oG strDct is DnnaHeB
The strDct 7ith the .iven ta. started 7ith an unna%ed
%e%'er an ali.n%ent %e%'er!. trDct de"nitions %ust
start 7ith a na%ed %e%'er.
H2INC /arnin*s
&I-%%%
9leFel $:
UN0NO2N 2A/NING !ontact MicrosoGt ProBDct
Dpport erFices
The co%&iler detected an un0no7n error condition.
Note the circu%stances o- the error and noti-y Microso-t
Cor&oration 'y -ollo7in. the instructions in the ZMicroso-t
#u&&ort #ervices[ section o- the introduction to this 'oo0.
&I-%%$
9leFel $. -:
nonstanBarB eOtension DseB P extension
The .iven nonstandard lan.ua.e e1tension 7as used 7hen
the *4e o&tion 7as s&eci"ed.
This is a level ? 7arnin.3 e1ce&t in the case o- a -unction
&ointer cast to data 7hen the /uic0 Co%&ile o&tion3 *,c3 is in
use3 7hich &roduces a level 1 7arnin..
I- the *4a o&tion has 'een s&eci"ed3 this condition .enerates a
synta1 error.
&I-%%*
9leFel $:
too HanU actDal paraHeters Gor Hacro identifer
The nu%'er o- actual ar.u%ents s&eci"ed 7ith the .iven
identi"er 7as .reater than the nu%'er o- -or%al &ara%eters
.iven in the %acro de"nition o- the identi"er.
The additional actual &ara%eters are collected 'ut i.nored
durin. e1&ansion o- the %acro.
&I-%%,
9leFel $:
not enoDEV actDal paraHeters Gor Hacro identifer
The nu%'er o- actual ar.u%ents s&eci"ed 7ith the .iven
identi"er 7as less than the nu%'er o- -or%al &ara%eters
.iven in the %acro de"nition o- the identi"er.
Ahen a -or%al &ara%eter is re-erenced in the de"nition and
the corres&ondin. actual &ara%eter has not 'een &rovided3
e%&ty te1t is su'stituted in the %acro e1&ansion.
&I-%%-
9leFel $:
HissinE ?:? aGter defned
The closin. &arenthesis 7as %issin. -ro% an RiG de"ned
&hrase.
The co%&iler assu%es a ri.ht &arenthesis3 !3 a-ter the "rst
identi"er it "nds. It then atte%&ts to co%&ile the re%ainder o-
the line3 7hich %ay result in another 7arnin. or error.
The -ollo7in. e1a%&le causes this 7arnin. and a -atal error=
`i- de"ned I91 ! PP I92 !
The co%&iler assu%ed a ri.ht &arenthesis a-ter I913 then
-ound a %is%atched &arenthesis in the re%ainder o- the line.
The -ollo7in. avoids this &ro'le%=
`i- de"ned I91 ! PP de"ned I92 !
&I-%%#
9leFel $:
identifer : Hacro reBeQnition
The .iven identi"er 7as de"ned t7ice. The co%&iler assu%ed
the ne7 %acro de"nition.
To eli%inate the 7arnin.3 either re%ove one o- the de"nitions
or use an RDnBeG directive 'e-ore the second de"nition.
This 7arnin. is caused in situations 7here a %acro is de"ned
'oth on the co%%and line and in the code 7ith a RBeQne
directive.
&I-%%)
9leFel $:
RDnBeG eOpecteB an iBentiQer
The na%e o- the identi"er 7hose de"nition 7as to 'e re%oved
7as not .iven 7ith the RDnBeG directive. The RDnBeG 7as
i.nored.
&I-%%+
9leFel *:
identifer : HDst be attribute
The attri'ute o- the .iven -unction 7as not e1&licitly stated.
The co%&iler -orced the attri'ute.
+or e1a%&le3 the -unction %ain %ust have the XcBecl
attri'ute.
&I-%%(
9leFel *:
identifer : XGastcall attribDte on Bata iEnoreB
The XGastcall attri'ute on the .iven data identi"er 7as
i.nored.
&I-%%T
9leFel $:
strinE too biE. trailinE cVaracters trDncateB
A strin. e1ceeded the co%&iler li%it o- 2<?M on strin. siDe.
The e1cess characters at the end o- the strin. 7ere truncated.
To correct this &ro'le%3 'rea0 the strin. into t7o or %ore
strin.s.
&I-%$%
9leFel $:
iBentiQer is a MAM IeUWorB
This 7arnin. is issued i- the .h include "le tries to rede"ne a
MA#M 0ey7ord.
H2INC 7ill .ive a 7arnin. 7henever such con6icts ta0e &lace.
This includes RBeQne3 tUpeBeG3 structures3 and other
varia'les. I- you 7ant to rede"ne a MA#M 0ey7ord3 use
RBeQne instead. A RBeQne in the .INC "le 7ill not try to
rede"ne the MA#M 0ey7ord unless the *Ht o&tion is set.
This 7arnin. 7ill also 'e issued anyti%e convertin. a tUpeBeG
state%ent 7ill result in a ty&e 7ith the sa%e na%e as the
ty&e. The translation is not done in this case. +or %ore
in-or%ation on 7arnin. HI?<1<3 see ZMiscellaneous 5tilities.[
&I-%$$ iBentiQer trDncateB to identifer
9leFel $:
Cnly the "rst 31 characters o- an identi"er are si.ni"cant. The
characters a-ter the li%it 7ere truncated.
This %ay %ean that t7o identi"ers that are diHerent 'e-ore
truncation %ay have the sa%e identi"er na%e a-ter
truncation.
&I-%$#
9leFel $:
identifer : bitPQelB tUpe HDst be inteEral
The .iven 'it "eld 7as not declared as an inte.ral ty&e. The
co%&iler assu%ed the 'ase ty&e o- the 'it "eld to 'e
unsi.ned.
2it "elds %ust 'e declared as unsi.ned inte.ral ty&es.
&I-%$)
9leFel ,:
function : no GDnction retDrn tUpe. DsinE int as BeGaDlt
The .iven -unction had not yet 'een declared or de"ned3 so
the return ty&e 7as un0no7n. A de-ault return ty&e o- int 7as
assu%ed.
&I-%$+
9leFel $:
cast oG int eOpression to Gar pointer
A -ar &ointer re&resents a -ull se.%ented address. Cn an
K<K;*K<KK &rocessor3 castin. an int value to a -ar &ointer
%ay &roduce an address 7ith a %eanin.less se.%ent value.
The co%&iler e1tended the int e1&ression to a ?$'yte value.
&I-%*%
9leFel $:
function : too HanU actDal paraHeters
The nu%'er o- ar.u%ents s&eci"ed in a -unction call 7as
.reater than the nu%'er o- &ara%eters s&eci"ed in the
-unction &rototy&e or -unction de"nition.
The e1tra &ara%eters 7ere &assed accordin. to the callin.
convention used on the -unction.
&I-%*$
9leFel $:
function : too GeW actDal paraHeters
The nu%'er o- ar.u%ents s&eci"ed in a -unction call 7as less
than the nu%'er o- &ara%eters s&eci"ed in the -unction
&rototy&e or -unction de"nition.
Cnly the &rovided actual &ara%eters are &assed. I- the called
-unction re-erences a varia'le that 7as not &assed3 the results
are unde"ned and %ay 'e une1&ected.
&I-%**
9leFel $:
function : pointer HisHatcV : paraHeter number
The &ointer ty&e o- the .iven &ara%eter 7as diHerent -ro%
the &ointer ty&e s&eci"ed in the ar.u%ent$ty&e list or -unction
de"nition.
The &ara%eter 7ill 'e &assed 7ithout chan.e. Its value 7ill 'e
inter&reted as a &ointer 7ithin the called -unction.
&I-%*,
9leFel $:
function : XbaseB pointer passeB to DnprototUpeB
GDnction : paraHeter number
Ahen in a near data %odel3 only the oHset &ortion o- a
XbaseB &ointer is &assed to an un&rototy&ed -unction. I- the
-unction e1&ects a -ar &ointer3 the resultin. code 7ill 'e
7ron.. In any data %odel3 i- the -unction is de"ned to ta0e a
XbaseB &ointer 7ith a diHerent 'ase3 the resultin. code %ay
'e un&redicta'le.
I- a &rototy&e is used 'e-ore the call3 the call 7ill 'e .enerated
correctly.
&I-%*-
9leFel $:
function : BiZerent tUpes : paraHeter number
The ty&e o- the .iven &ara%eter in a -unction call did not
a.ree 7ith the ty&e .iven in the ar.u%ent ty&e list or -unction
de"nition.
The &ara%eter 7ill 'e &assed 7ithout chan.e. The -unction
7ill inter&ret the &ara%eterYs ty&e as the ty&e e1&ected 'y
the -unction.
&I-%*(
9leFel $:
paraHeter number Beclaration BiZerent
The ty&e o- the .iven &ara%eter did not a.ree 7ith the
corres&ondin. ty&e in the ar.u%ent ty&e list or 7ith the
corres&ondin. -or%al &ara%eter.
The ori.inal declaration 7as used.
&I-%,%
9leFel $:
Qrst paraHeter list lonEer tVan tVe seconB
A -unction 7as declared %ore than once 7ith diHerent
&ara%eter lists.
The "rst declaration 7as used.
&I-%,$
9leFel $:
seconB paraHeter list is lonEer tVan tVe Qrst
A -unction 7as declared %ore than once 7ith diHerent
&ara%eter lists.
The "rst declaration 7as used.
&I-%,-
9leFel $:
siCeoG retDrns %
The siCeoG o&erator 7as a&&lied to an o&erand that yielded a
siDe o- Dero.
This 7arnin. is in-or%ational.
&I-%-%
9leFel $:
HeHorU attribDte on identifer iEnoreB
The Xnear3 XGar3 XVDEe3 or XbaseB 0ey7ord has no eHect in
the declaration o- the .iven identi"er and is i.nored.
Cne cause o- this 7arnin. is a hu.e array that is not declared
.lo'ally. 9eclare hu.e arrays outside o- %ain.
&I-%-*
9leFel $:
identifer : Vas baB storaEe class
The stora.e class s&eci"ed -or identifer cannot 'e used in this
conte1t.
The de-ault stora.e class -or this conte1t 7as used in &lace o-
the ille.al class=
u I- identifer 7as a -unction3 the co%&iler assu%ed e1tern
class.
u I- identifer 7as a -or%al &ara%eter or local varia'le3 the
co%&iler assu%ed auto class.
u I- identifer 7as a .lo'al varia'le3 the co%&iler assu%ed the
varia'le 7as declared 7ith no stora.e class.
&I-%--
9leFel $:
XVDEe on identifer iEnoreB. HDst be an arraU
The co%&iler i.nored the XVDEe %e%ory attri'ute on the
.iven identi"er. Cnly arrays %ay 'e declared 7ith the XVDEe
%e%ory attri'ute. Cn &ointers3 XVDEe %ust 'e used as a
%odi"er3 not as a %e%ory attri'ute.
&I-%-+
9leFel $:
operator : BiZerent leFels oG inBirection
An e1&ression involvin. the s&eci"ed o&erator had
inconsistent levels o- indirection.
I- 'oth o&erands are o- arith%etic ty&e3 or i- 'oth are not such
as array or &ointer!3 then they are used 7ithout chan.e3
thou.h the co%&iler %ay 9#$e1tend one o- the o&erands i-
one is -ar and one is near. I- one is arith%etic and one is not3
the arith%etic o&erator is converted to the ty&e o- the other
o&erator.
+or e1a%&le3 the -ollo7in. code causes this 7arnin. 'ut is
co%&iled 7ithout chan.e=
char ::&N
char :,N
& I ,N *: Aarnin. :*
&I-%-(
9leFel $:
arraU\s BeclareB sDbscripts BiZerent
An e1&ression involved &ointers to arrays o- diHerent siDe.
The &ointers 7ere used 7ithout conversion.
&I-%-T
9leFel $:
operator : inBirection to BiZerent tUpes
The &ointer e1&ressions used 7ith the .iven o&erator had
diHerent 'ase ty&es.
The e1&ressions 7ere used 7ithout conversion.
+or e1a%&le3 the -ollo7in. code causes this 7arnin.=
struct ts1 :s1N
struct ts2 :s2N
s2 I s1N *: Aarnin. :*
&I-%#%
9leFel -:
operator : BiZerent coBe attribDtes
The -unction$&ointer e1&ressions used 7ith operator had
diHerent code attri'utes. The attri'ute involved is either
XeOport or XloaBBs.
This is a 7arnin. and not an error3 'ecause XeOport and
XloaBBs aHect only entry se,uences and not callin.
conventions.
&I-%#$
9leFel *:
tUpe conFersion. possible loss oG Bata
T7o data ite%s in an e1&ression had diHerent 'ase ty&es3
causin. the ty&e o- one ite% to 'e converted. 9urin. the
conversion3 a data ite% 7as truncated.
&I-%#* inFaliB nDHerical arEDHent string
A nu%erical ar.u%ent 7as e1&ected instead o- the .iven
strin..
&I-%#,
9leFel $:
at least one FoiB operanB
An e1&ression 7ith ty&e void 7as used as an o&erand.
The e1&ression 7as evaluated usin. an unde"ned value -or
the void o&erand.
&I-%),
9leFel *:
function : GDnction too larEe Gor postPoptiHiCer
Not enou.h s&ace 7as availa'le to o&ti%iDe the .iven
-unction.
Cne o- the -ollo7in. %ay 'e a solution=
u Reco%&ile 7ith -e7er o&ti%iDations.
u 9ivide the -unction into t7o or %ore s%aller -unctions.
&I-%))
9leFel *:
local sUHbolPtable oFerSoW P soHe local sUHbols HaU
be HissinE in listinEs
The listin. .enerator ran out o- hea& s&ace -or local varia'les3
so the source listin. %ay not contain sy%'ol$ta'le in-or%ation
-or all local varia'les.
&I-%)+
9leFel $:
DneOpecteB cVaracters GolloWinE directive BirectiFe P
neWline eOpecteB
E1tra characters -ollo7ed a &re&rocessor directive and 7ere
i.nored. This 7arnin. a&&ears only 7hen co%&ilin. 7ith the
*4a o&tion.
+or e1a%&le3 the -ollo7in. code causes this 7arnin.=
`endi- NCOEBTOEEL#
To re%ove the 7arnin.3 co%&ile 7ith *4e or use co%%ent
deli%iters=
`endi- *: NCOEBTOEEL# :*
&I-%+$
9leFel *:
function : no GDnction prototUpe EiFen
The .iven -unction 7as called 'e-ore the co%&iler -ound the
corres&ondin. -unction &rototy&e.
The -unction 7ill 'e called usin. the de-ault rules -or callin. a
-unction 7ithout a &rototy&e.
&I-%+*
9leFel $:
function : no GDnction prototUpe on XGastcall GDnction
A XGastcall -unction 7as called 7ithout "rst 'ein. &rototy&ed.
+unctions that are XGastcall should 'e &rototy&ed to
.uarantee that the re.isters assi.ned at each &oint o- call are
the sa%e as the re.isters assu%ed 7hen the -unction is
de"ned. A -unction de"ned in the ne7 AN#I style is a
&rototy&e.
A &rototy&e %ust 'e added 7hen this 7arnin. a&&ears3 unless
the -unction ta0es no ar.u%ents or ta0es only ar.u%ents that
cannot 'e &assed in the .eneral$&ur&ose re.isters.
&I-%+,
9leFel $:
scopinE too Beep. Beepest scopinE HerEeB WVen
BebDEEinE
9eclarations a&&eared at a static nestin. level .reater than
13. As a result3 all declarations 'eyond this level 7ill see% to
a&&ear at the sa%e level.
&I-%+)
9leFel $:
type : HaU be DseB on inteEral tUpes onlU
The si.ned or unsi.ned ty&e %odi"er 7as used 7ith a
noninte.ral ty&e.
The .iven ,uali"er 7as i.nored.
The -ollo7in. e1a%&le causes this 7arnin.=
unsi.ned dou'le 1N
&I-%+T
9leFel $:
DneOpecteB toIen token
An une1&ected se&arator to0en 7as -ound in the ar.u%ent list
o- a &ra.%a.
The re%ainder o- the &ra.%a 7as i.nored.
&I-%(*
9leFel $:
eOpecteB an iBentiQer. GoDnB token
An identi"er 7as %issin. -ro% the ar.u%ent list.
The re%ainder o- the &ra.%a 7as i.nored.
&I-%(,
9leFel $:
eOpecteB ?9?. GoDnB token
A le-t &arenthesis3 3 7as %issin. -ro% a &ra.%aYs ar.u%ent
list.
The &ra.%a 7as i.nored.
The -ollo7in. e1a%&le causes this 7arnin.=
`&ra.%a chec0O&ointer on!
&I-%(-
9leFel $:
eOpecteB a praEHa IeUWorB. GoDnB token
The token -ollo7in. RpraEHa 7as not reco.niDed as a
directive.
The &ra.%a 7as i.nored.
The -ollo7in. e1a%&le causes this 7arnin.=
`&ra.%a on!
&I-%(#
9leFel $:
eOpecteB ;on N oZ<
The &ra.%a e1&ected an on or oH &ara%eter3 'ut the
s&eci"ed &ara%eter 7as unreco.niDed or %issin..
The &ra.%a 7as i.nored.
&I-%()
9leFel $:
eOpecteB ;$ N * N -<
The &ra.%a e1&ected a &ara%eter o- either 13 23 or ?3 'ut the
s&eci"ed &ara%eter 7as unreco.niDed or %issin..
&I-%(+
9leFel $:
function : BeclareB WitV FoiB paraHeter list
The .iven -unction 7as declared as ta0in. no &ara%eters3 'ut
a call to the -unction s&eci"ed actual &ara%eters.
The e1tra &ara%eters 7ere &assed accordin. to the callin.
convention used on the -unction.
The -ollo7in. e1a%&le causes this 7arnin.=
int -1void!N
-11<!N
&I-%((
9leFel $:
function : pointer HisHatcV : paraHeter number.
paraHeter list number
The ar.u%ent &assed to the .iven -unction had a diHerent
level o- indirection -ro% the .iven &ara%eter in the -unction
de"nition.
The &ara%eter 7ill 'e &assed 7ithout chan.e. Its value 7ill 'e
inter&reted as a &ointer 7ithin the called -unction.
&I-%(T
9leFel $:
function : BiZerent tUpes : paraHeter number.
paraHeter list number
The ar.u%ent &assed to the .iven -unction did not have the
sa%e ty&e as the .iven &ara%eter in the -unction de"nition.
The &ara%eter 7ill 'e &assed 7ithout chan.e. The -unction
7ill inter&ret the &ara%eterYs ty&e as the ty&e e1&ected 'y
the -unction.
&I-%T% BiZerent constJFolatile YDaliQers
9leFel $:
A &ointer to an ite% declared as const 7as assi.ned to a
&ointer that 7as not declared as const. As a result3 the const
ite% &ointed to could 'e %odi"ed 7ithout 'ein. detected.
The e1&ression 7as co%&iled 7ithout %odi"cation.
The -ollo7in. e1a%&le causes this 7arnin.=
const char :& I da'cdedN
int strchar :s!N
str&!N
&I-%T$
9leFel *:
no sUHbols Were BeclareB
The co%&iler detected an e%&ty declaration3 as in the
-ollo7in. e1a%&le=
int N
The declaration 7as i.nored.
&I-%T*
9leFel *:
DntaEEeB enDHJstrDctJDnion BeclareB no sUHbols
The co%&iler detected an e%&ty declaration usin. an
unta..ed structure3 union3 or enu%erated varia'le.
The declaration 7as i.nored.
+or e1a%&le3 the -ollo7in. code causes this 7arnin.=
struct ] . . . ^N
&I-%T,
9leFel ,:
DnescapeB neWline in cVaracter constant in inactiFe
coBe
The constant e1&ression o- an RiG3 ReliG3 RiGBeG3 or RiGnBeG
&re&rocessor directive evaluated to <3 %a0in. the code that
-ollo7s inactive. Aithin that inactive code3 a ne7line character
a&&eared 7ithin a set o- sin.le or dou'le ,uotation %ar0s.
All te1t until the ne1t dou'le ,uotation %ar0 7as considered
to 'e 7ithin a character constant.
&I-%T#
9leFel $:
eOpecteB ?:?. GoDnB token
More than one ar.u%ent 7as .iven -or a &ra.%a that can ta0e
only one ar.u%ent.
The co%&iler assu%ed the e1&ected &arenthesis and i.nored
the re%ainder o- the line.
&I-%T)
9leFel *:
attribute1 HDst be DseB WitV attribute2
The use o- attri'ute2 re,uires the use o- attri'ute1.
+or e1a%&le3 usin. a varia'le nu%'er o- ar.u%ents ...!
re,uires that XcBecl 'e used. Also3 XinterrDpt -unctions %ust
'e XGar and XcBecl.
The co%&iler assu%ed attribute1 -or the -unction.
&I-%T(
9leFel $:
FoiB GDnction retDrninE a FalDe
A -unction declared 7ith a void return ty&e also returned a
value.
A -unction 7as declared 7ith a void return ty&e 'ut 7as
de"ned as a value.
The co%&iler assu%ed the -unction returns a value o- ty&e int.
&I-$%-
9leFel $:
identifer : near Bata in saHeXseE praEHa. iEnoreB
The .iven near varia'le 7as s&eci"ed in a saHeXseE &ra.%a.
The identifer 7as i.nored.
&I-$%#
9leFel $:
identifer : coBe HoBiQers onlU on GDnction or pointer
to GDnction
The .iven identi"er 7as declared 7ith a code %odi"er that
can 'e used only 7ith a -unction or -unction &ointer.
The code %odi"er 7as i.nored.
&I-$%T
9leFel $:
DneOpecteB iBentiQer identifer
The &ra.%a contained an une1&ected to0en.
The &ra.%a 7as i.nored.
&I-$$%
9leFel $:
DneOpecteB toIen int constant
The &ra.%a contained an une1&ected inte.er constant.
The &ra.%a 7as i.nored.
&I-$$$
9leFel $:
DneOpecteB toIen string
The &ra.%a contained an une1&ected strin..
The &ra.%a 7as i.nored.
&I-$$*
9leFel $:
Hacro naHe name is reserFeB. command iEnoreB
The .iven co%%and atte%&ted to de"ne or unde"ne the
&rede"ned %acro name or the &re&rocessor o&erator defned.
The .iven co%%and is dis&layed as either RBeQne or
RDnBeG3 even i- the atte%&t 7as %ade usin. co%%and$line
o&tions.
The co%%and 7as i.nored.
&I-$$,
9leFel $:
GDnction paraHeter lists BiZereB
A -unction &ointer 7as assi.ned to a -unction &ointer3 'ut the
&ara%eter lists o- the -unctions do not a.ree.
The e1&ression 7as co%&iled 7ithout %odi"cation.
&I-$$- saHe tUpe YDaliQer DseB Hore tVan once
9leFel $:
A ty&e ,uali"er const3 volatile3 si.ned3 or unsi.ned! 7as used
%ore than once in the sa%e ty&e.
The second occurrence o- the ,uali"er 7as i.nored.
&I-$$#
9leFel $:
tag : tUpe BeQnition in GorHal paraHeter list
The .iven ta. 7as used to de"ne a strDct3 Dnion3 or enDH in
the -or%al &ara%eter list o- a -unction.
The co%&iler assu%ed the de"nition 7as at the .lo'al level.
&I-$$)
9leFel $:
9no taE: : tUpe BeQnition in GorHal paraHeter list
A strDct3 Dnion3 or enDH ty&e 7ith no ta. 7as de"ned in the
-or%al &ara%eter list o- a -unction.
The co%&iler assu%ed the de"nition 7as at the .lo'al level.
&I-$$T
9leFel $:
BiZerent bases name1 anB name2 speciQeB
The XbaseB &ointers in the e1&ression have diHerent sy%'olic
'ases. There %ay 'e truncation or loss in the code .enerated.
&I-$*%
9leFel $:
XbaseBJDnbaseB HisHatcV
The e1&ression contains a conversion 'et7een a XbaseB
&ointer and another &ointer that is un'ased. #o%e in-or%ation
%ay have 'een truncated.
This 7arnin. co%%only occurs 7hen a XbaseB &ointer is
&assed to a -unction that acce&ts a near or -ar &ointer.
&I-$*,
9leFel $:
BiZerent base eOpressions speciQeB
The e1&ression contains a conversion 'et7een XbaseB
&ointers3 'ut the 'ase e1&ressions o- the XbaseB &ointers are
diHerent. #o%e o- the XbaseB conversions %ay 'e
une1&ected.
&I-$*#
9leFel -:
BeciHal BiEit terHinates octal escape seYDence
An octal esca&e se,uence in a character or strin. constant
7as ter%inated 7ith a deci%al di.it.
The co%&iler evaluated the octal nu%'er 7ithout the deci%al
di.it3 and assu%ed the deci%al di.it 7as a character.
The -ollo7in. e1a%&le causes this 7arnin.=
char array1() I dcM<bdN
I- the di.it b 7as intended as a character and 7as not a ty&in.
error3 correct the e1a%&le as -ollo7s=
char array() I dc<M<bdN *: #trin. containin. dKbd :*
&I-$*) (ag : DnInoWn HeHorU HoBel SaE
9leFel $:
The 6a. used 7ith the *A o&tion 7as not reco.niDed and 7as
i.nored.
&I-$*(
9leFel -:
storaEePclass speciQer aGter tUpe
A stora.e$class s&eci"er auto3 e1tern3 re.ister3 static! a&&ears
a-ter a ty&e in a declaration. The co%&iler assu%ed the
stora.e class s&eci"er occurred 'e-ore the ty&e.
Ne7$style code &laces the stora.e$class s&eci"er "rst.
&I-$*T
9leFel -:
character : DnrecoEniCeB cVaracter escape seYDence
The character -ollo7in. a 'ac0slash in a character or strin.
constant 7as not reco.niDed as a valid esca&e se,uence.
As a result3 the 'ac0slash is i.nored and not &rinted3 and the
character -ollo7in. the 'ac0slash is &rinted.
To &rint a sin.le 'ac0slash c!3 s&eci-y a dou'le 'ac0slash cc!.
&I-$,%
9leFel -:
operator : loEical operation on aBBress oG strinE
constant
The o&erator 7as used 7ith the address o- a strin. literal.
5ne1&ected code 7as .enerated.
+or e1a%&le3 the -ollo7in. code causes this 7arnin.=
char :&cN
&c I dHellodN
i- &c II dHellod! ...
The i- state%ent co%&ares the value stored in the &ointer &c
to the address o- the strin. ZHello[ 7hich is se&arately
allocated each ti%e it occurs in the code. It does not co%&are
the strin. &ointed to 'y &c 7ith the strin. ZHello.[
To co%&are strin.s3 use the strc%& -unction.
&I-$,$
9leFel -:
function : Dses olBPstUle Beclarator
The -unction declaration or de"nition is not a &rototy&e.
Ne7$style -unction declarations are in &rototy&e -or%.
u old style
int addrec na%e3 id !
char :na%eN
int idN
] ^
u ne7 style
int addrec char :na%e3 int id !
] ^
&I-$,*
9leFel -:
ob)ect : const ob[ect sVoDlB be initialiCeB
The value o- a const o'Fect cannot 'e chan.ed3 so the only
7ay to .ive the const o'Fect a value is to initialiDe it.
It 7ill not 'e &ossi'le to assi.n a value to ob)ect.
&I-$,#
9leFel ,:
conFersion betWeen BiZerent inteEral tUpes
In-or%ation 7as lost 'et7een t7o inte.ral ty&es.
+or e1a%&le3 the -ollo7in. code causes this 7arnin.=
int intvarN
lon. lon.varN
intvar I lon.varN
I- the in-or%ation is %erely inter&reted diHerently3 this
7arnin. is not .iven3 as in the -ollo7in. e1a%&le=
unsi.ned uintvar I intvarN
&I-$,)
9leFel -:
conFersion betWeen BiZerent SoatinE tUpes
In-or%ation 7as lost or truncated 'et7een t7o 6oatin. ty&es.
+or e1a%&le3 the -ollo7in. code causes this 7arnin.=
dou'le dou'levarN
6oat 6oatvarN
6oatvar I dou'levarN
Note that unsu_1ed 6oatin.$&oint constants have ty&e
dou'le3 so the -ollo7in. code causes this 7arnin.=
6oatvar I 1.<N
I- the 6oatin.$&oint constant should 'e treated as 6oat ty&e3
use the + or -! su_1 on the constant to &revent the -ollo7in.
7arnin.=
6oatvar I 1.<+N
&I-$,(
9leFel $:
*J GoDnB oDtsiBe oG coHHent
The co%&iler -ound a closin. co%%ent deli%iter :*! 7ithout a
&recedin. o&enin. deli%iter. It assu%ed a s&ace 'et7een the
asteris0 :! and the -or7ard slash *!.
The -ollo7in. e1a%&le causes this 7arnin.=
int :*:co%%ent:*&trN
In this e1a%&le3 the co%&iler assu%ed a s&ace 'e-ore the "rst
co%%ent deli%iter *:!3 and issued the 7arnin. 'ut co%&iled
the line nor%ally. To re%ove the 7arnin.3 insert the assu%ed
s&ace.
5sually3 the cause o- this 7arnin. is an atte%&t to nest
co%%ents.
To co%%ent out sections o- code that %ay contain co%%ents3
enclose the code in an RiG*RenBiG 'loc0 and set the
controllin. e1&ression to Dero3 as in=
`i- <
int %yOvaria'leN *: 9eclaration currently not needed :*
`endi-
&I-$,T
9leFel $:
hexnumber : VeO escape seYDence is oDt oG ranEe
A he1 esca&e se,uence a&&earin. in a character or strin.
constant 7as too lar.e to 'e converted to a character.
I- in a strin. constant3 the co%&iler cast the lo7 'yte o- the
he1adeci%al nu%'er to a char. I- in a char constant3 the
co%&iler %ade the cast and then si.n e1tended the result. I-
in a char constant and co%&iled 7ith *@3 the co%&iler cast the
value to an unsi.ned char.
+or e1a%&le3 a c11H a is out o- ran.e -or a character. Note that
the -ollo7in. code causes this 7arnin.=
&rint-dc1M2ellcnd!N
The nu%'er M'e is a le.al he1 nu%'er3 'ut is too lar.e -or a
character. To correct this e1a%&le3 use three he1 di.its=
&rint-dc1<<M2ellcnd!N
&I-$()
9leFel $:
strinE too lonE P trDncateB to -% cVaracters
The strin. ar.u%ent -or a title or su'title &ra.%a e1ceeded
the %a1i%u% allo7a'le len.th and 7as truncated.
&I-*%%
9leFel $:
local Fariable identifer DseB WitVoDt VaFinE been
initialiCeB
A re-erence 7as %ade to a local varia'le that had not 'een
assi.ned a value. As a result3 the value o- the varia'le is
un&redicta'le.
This 7arnin. is .iven only 7hen co%&ilin. 7ith .lo'al re.ister
allocation on *Ce!.
&I-*%$
9leFel ,:
local Fariable identifer HaU be DseB WitVoDt VaFinE
been initialiCeB
A re-erence 7as %ade to a local varia'le that %i.ht not have
'een assi.ned a value. As a result3 the value o- the varia'le
%ay 'e un&redicta'le.
This 7arnin. is .iven only 7hen co%&ilin. 7ith the .lo'al
re.ister allocation on *Ce!.
&I-*%*
9leFel -:
DnreacVable coBe
The 6o7 o- control can never reach the indicated line.
This 7arnin. is .iven only 7hen co%&ilin. 7ith one o- the
.lo'al o&ti%iDations *Ce3 *C.3 or *Cl!.
&I-*%,
9leFel $:
function : GDnction too larEe Gor Elobal optiHiCations
The na%ed -unction 7as too lar.e to "t in %e%ory and 'e
co%&iled 7ith the selected o&ti%iDation. The co%&iler did not
&er-or% any .lo'al o&ti%iDations *Ce3 *C.3 or *Cl!. Cther *C
o&ti%iDations3 such as *Ca and *Ci3 are still &er-or%ed.
Cne o- the -ollo7in. %ay re%ove this 7arnin.=
u Reco%&ile 7ith -e7er o&ti%iDations.
u 9ivide the -unction into t7o or %ore s%aller -unctions.
&I-*%-
9leFel ,:
function : inPline asseHbler preclDBes Elobal
optiHiCations
The use o- in$line asse%'ler in the na%ed -unction &revented
the s&eci"ed .lo'al o&ti%iDations *Ce3 *C.3 or *Cl! -ro% 'ein.
&er-or%ed.
&I-*%#
9leFel -:
stateHent Vas no eZect
The indicated state%ent 7ill have no eHect on the &ro.ra%
e1ecution.
#o%e e1a%&les o- state%ents 7ith no eHect=
1N
a T 1N
' II cN
&I-*%T
9leFel -:
coHHa operator WitVin arraU inBeO eOpression
The value used as an inde1 into an array 7as the last one o-
%ulti&le e1&ressions se&arated 'y the co%%a o&erator.
An array inde1 le.ally %ay 'e the value o- the last e1&ression
in a series o- e1&ressions se&arated 'y the co%%a o&erator.
Ho7ever3 the intent %ay have 'een to use the e1&ressions to
s&eci-y %ulti&le inde1es into a %ultidi%ensional array.
+or e1a%&le3 the -ollo7in. line3 7hich causes this 7arnin.3 is
le.al in C3 and s&eci"es the inde1 c into array a=
a('3c)
Ho7ever3 the -ollo7in. line uses 'oth ' and c as inde1es into a
t7o$di%ensional array=
a(')(c)
&I-,%%
9leFel *:
insD]cient HeHorU to process BebDEEinE
inGorHation
The &ro.ra% 7as co%&iled 7ith the *4i o&tion3 'ut not enou.h
%e%ory 7as availa'le to create the re,uired de'u..in.
in-or%ation.
Cne o- the -ollo7in. %ay 'e a solution=
u #&lit the current "le into t7o or %ore "les and co%&ile the%
se&arately.
u Re%ove other &ro.ra%s or drivers runnin. in the syste%
7hich could 'e consu%in. si.ni"cant a%ounts o- %e%ory.
&I-,%$ loss oG BebDEEinE inGorHation caDseB bU
9leFel *: optiHiCation
#o%e o&ti%iDations3 such as code %otion3 cause re-erences to
nested varia'les to 'e %oved. The in-or%ation a'out the level
at 7hich the varia'les are declared %ay 'e lost. As a result3 all
declarations 7ill see% to 'e at nestin. level 1.
&I-,*,
9leFel ,:
potential BiFiBe bU %
The second o&erand in a divide o&eration evaluated to Dero at
co%&ile ti%e3 .ivin. unde"ned results.
The < o&erand %ay have 'een .enerated 'y the co%&iler3 as
in the -ollo7in. e1a%&le=
-unc1! ] int i3F30N i *I F VV 0N ^
&I-,*-
9leFel ,:
potential HoB bU %
The second o&erand in a re%ainder o&eration evaluated to
Dero at co%&ile ti%e3 .ivin. unde"ned results.
&I-+TT
9leFel $:
DnInoWn option character in option
A co%%and$line o&tion 7as s&eci"ed that 7as not understood
'y H2INC3 or the .iven character 7as not a valid letter -or the
o&tion.
+or e1a%&le3 the -ollo7in. line=
`&ra.%a o&ti%iDed,d3 on!

causes the -ollo7in. 7arnin.=
un0no7n o&tion a,a in a`&ra.%a o&ti%iDea
&I-(%%
9leFel $:
Hore tVan one HeHorU HoBel speciQeB
There 7as %ore than one %e%ory %odel .iven at the
co%%and line. The *AT3 *A#3 *AM3 *AC3 *AL3 and *AH o&tions
s&eci-y the %e%ory %odel.
This error is caused 'y con6ictin. o&tions s&eci"ed at the
co%%and line and in the CL and H2INC environ%ent
varia'les.
&I-(%$
9leFel $:
Hore tVan one tarEet processor speciQeB
There 7as %ore than one &rocessor ty&e .iven at the
co%%and line. The *><3 *>13 and *>2 o&tions s&eci-y the
&rocessor ty&e.
This error is caused 'y con6ictin. o&tions s&eci"ed at the
co%%and line and in the CL and H2INC environ%ent
varia'les.
&I-(%*
9leFel $:
iEnorinE inFaliB J8p FalDe value
The ali.n%ent value s&eci"ed to the *4& o&tion 7as not 13 23
or ?. The de-ault o- 1 7as assu%ed.
&I-($%
9leFel *:
Dntranslatable basic tUpe siCe
H2INC could not translate the ite% to a MA#M ty&e.
The C void ty&e cannot 'e translated to a si%ilar MA#M ty&e.
&I-($$
9leFel $:
static GDnction prototUpe not translateB
H2INC does not translate static ite%s3 as they are not visi'le
outside the C source "le.
&I-($*
9leFel $:
static Fariable Beclaration not accepteB WitV JMn
sWitcV
H2INC does not translate static ite%s3 as they are not visi'le
outside the C source "le.
&I-($#
9leFel $:
string : E'U strinE trDncateB to *#- cVaracters
A RBeQne state%ent e1ceeded 2G? characters3 the %a1i%u%
len.th o- a MA#M E'U state%ent. The strin. 7as truncated.
&I-($)
9leFel $:
iEnorinE XGastcall GDnction BeQnition
H2INC does not translate -unction declarations or &rototy&es
7ith the XGastcall attri'ute. The XGastcall callin. convention
cannot 'e used directly 7ith MA#M. #ee the docu%entation
7ith your C co%&iler -or details on XGastcall.
&I-(*%
9leFel $:
iEnorinE GDnction BeQnition : function9 :
H2INC translates header in-or%ation onlyN it cannot convert
&ro.ra% code. H2INC does not translate -unction 'odies.
ML Error Messa*es
ML 'atal Errors
A$%%% cannot open Qle: flename
The assembler was unable to open a source, include, or output file.
Cne o- the -ollo7in. %ay 'e a cause=
u The "le does not e1ist.
u The "le is in use 'y another &rocess.
u The "lena%e is not valid.
u A read$only "le 7ith the out&ut "lena%e already e1ists.
u Not enou.h "le handles e1ist. In M#$9C#3 increase the
nu%'er o- "le handles 'y chan.in. the +ILE# settin. in
CCN+I>.#L# to allo7 a lar.er nu%'er o- o&en "les.
+ILE#IG< is the reco%%ended settin..
u The current drive is -ull.
u The current directory is the root and is -ull.
u The device cannot 'e 7ritten to.
u The drive is not ready.
A$%%$ IJO error closinE Qle
The operating system returned an error when the assembler attempted to close
a file.
This error can 'e caused 'y havin. a corru&t "le syste% or 'y
re%ovin. a dis0 'e-ore the "le could 'e closed.
A$%%* IJO error WritinE Qle
The assembler was unable to write to an output file.
Cne o- the -ollo7in. %ay 'e a cause=
u The current drive is -ull.
u The current directory is the root and is -ull.
u The device cannot 'e 7ritten to.
u The drive is not ready.
A$%%, IJO error reaBinE Qle
The assembler encountered an error when trying to read a file.
Cne o- the -ollo7in. %ay 'e a cause=
u The dis0 has a 'ad sector.
u The "le$access attri'ute is set to &revent readin..
u The drive is not ready.
A$%%# asseHbler liHit : Hacro paraHeter naHe table GDll
Too many parameters, locals, or macro labels were defined for a macro. There
was no more room in the macro name table.
9e"ne shorter or -e7er na%es3 or re%ove unnecessary
%acros.
A$%%) inFaliB coHHanBPline option: option
ML did not recognize the given parameter as an option.
This error is .enerally caused 7hen there is a synta1 error on
the co%%and line.
A$%%+ nestinE leFel too Beep
The assembler reached its nesting limit. The limit is 20 levels except where
noted otherwise.
Cne o- the -ollo7in. 7as nested too dee&ly=
u A hi.h$level directive such as .I13 ./EPEAT3 or .2&ILE
u A structure de"nition
u A conditional$asse%'ly directive
u A &rocedure de"nition
u A PU&!ONTE7T directive the li%it is 1<!.
u A se.%ent de"nition
u An include "le
u A %acro
A$%%( DnHatcVeB Hacro nestinE
Either a macro was not terminated before the end of the file, or the terminating
directive ENDM was found outside of a macro block.
Cne cause o- this error is o%ission o- the dot 'e-ore ./EPEAT
or .2&ILE.
A$%%T line too lonE
A line in a source file exceeded the limit of 512 characters.
I- %ulti&le &hysical lines are concatenated 7ith the line$
continuation character c !3 the resultin. lo.ical line is still
li%ited to G12 characters.
A$%$% DnHatcVeB blocI nestinE :
A block beginning did not have a matching end, or a block end did not have a
matching beginning. One of the following may be involved:
u A hi.h$level directive such as .I13 ./EPEAT3 or .2&ILE
u A conditional$asse%'ly directive such as I1. /EPEAT. or
2&ILE
u A structure or union de"nition
u A &rocedure de"nition
u A se.%ent de"nition
u A POP!ONTE7T directive
u A conditional$asse%'ly directive3 such as an ELE3 ELEI13
or ENDI1 7ithout a %atchin. I1
A$%$$ BirectiFe HDst be in control blocI
The assembler found a high-level directive where one was not expected. One
of the following directives was found:
u .ELE 7ithout .I1
u .ENDI1 7ithout .I1
u .END2 7ithout .2&ILE
u .UNTIL[[!78]] 7ithout ./EPEAT
u .!ONTINUE 7ithout .2&ILE or ./EPEAT
u ."/EA0 7ithout .2&ILE or ./EPEAT
u .ELE -ollo7in. .ELE
A$%$* error coDnt eOceeBs $%%L stoppinE asseHblU
The number of nonfatal errors exceeded the assembler limit of 100.
Non-atal errors are in the ran.e A2111. Ahen 7arnin.s are
treated as errors they are included in the count. Aarnin.s are
considered errors i- you use the *A1 co%%and$line o&tion3 or
i- you set the Aarnin.s Treated as Errors o&tion in the Macro
Asse%'ler >lo'al C&tions dialo. 'o1 o- PA2.
A$%$, inFaliB nDHerical coHHanBPline arEDHent : number
The ar.u%ent s&eci"ed 7ith an o&tion 7as not a nu%'er or
7as an invalid nu%'er.
A$%$- too HanU arEDHents
There was insufficient memory to hold all of the command-line arguments.
This error usually occurs 7hile e1&andin. in&ut "lena%e
7ildcards : and 8!. To eli%inate this error3 asse%'le %ulti&le
source "les se&arately.
A$%$# stateHent too coHpleO
The assembler ran out of stack space while trying to parse the specified
statement.
Cne or %ore o- the -ollo7in. chan.es %ay eli%inate this error=
u 2rea0 the state%ent into several shorter state%ents.
u Reor.aniDe the state%ent to reduce the a%ount o-
&arenthetical nestin..
u I- the state%ent is &art o- a %acro3 'rea0 the %acro into
several shorter %acros.
A$%$+ HissinE soDrce QlenaHe
ML could not find a file to assemble or pass to the linker.
This error is .enerated 7hen you .ive ML co%%and$line
o&tions 7ithout s&eci-yin. a "lena%e to act u&on. To asse%'le
"les that do not have a .A#M e1tension3 use the *Ta co%%and$
line o&tion.
This error can also 'e .enerated 'y invo0in. ML 7ith no
&ara%eters i- the ML environ%ent varia'le contains
co%%and$line o&tions.
A$T%$ Internal AsseHbler Error
!ontact MicrosoGt ProBDct Dpport erFices
The MASM driver called Ml.exe, which generated a system error.
Note the circu%stances o- the error and noti-y Microso-t
Cor&oration 'y -ollo7in. the instructions in the ZMicroso-t
#u&&ort #ervices[ section o- the introduction to this 'oo0.
ML Non&atal Errors
A*%%% HeHorU operanB not alloWeB in conteOt
A %e%ory o&erand 7as .iven to an instruction that cannot
ta0e a %e%ory o&erand.
A*%%$ iHHeBiate operanB not alloWeB
A constant or %e%ory oHset 7as .iven to an instruction that
cannot ta0e an i%%ediate o&erand.
A*%%* cannot VaFe Hore tVan one ELE claDse per I1 blocI
The assembler found an ELSE directive after an existing ELSE directive in a
conditional-assembly block (IF block).
Cnly one ELE can 'e used in an I1 'loc0. An I1 'loc0 'e.ins
7ith an I13 I1E3 I1"3 I1N"3 I1DE13 I1NDE13 I1DI13 or I1IDN
directive. There can 'e several ELEI1 state%ents in an I1
'loc0.
Cne cause o- this error is o%ission o- an ENDI1 state%ent
-ro% a nested I1 'loc0.
A*%%, eOtra cVaracters aGter stateHent
A directive 7as -ollo7ed 'y une1&ected characters.
A*%%- sUHbol tUpe conSict : identifer
The E7TE/NDE1 or LA"EL directive 7as used on a varia'le3
sy%'ol3 data structure3 or la'el that 7as de"ned in the sa%e
%odule 'ut 7ith a diHerent ty&e.
A*%%# sUHbol reBeQnition : identifer
The .iven nonrede"na'le sy%'ol 7as de"ned in t7o &laces.
A*%%) DnBeQneB sUHbol : identifer
An attempt was made to use a symbol that was not defined.
Cne o- the -ollo7in. %ay have occurred=
u A sy%'ol 7as not de"ned.
u A "eld 7as not a %e%'er o- the s&eci"ed structure.
u A sy%'ol 7as de"ned in an include "le that 7as not
included.
u An e1ternal sy%'ol 7as used 7ithout an E7TE/N or
E7TE/NDE1 directive.
u A sy%'ol na%e 7as %iss&elled.
u A local code la'el 7as re-erenced outside o- its sco&e.
A*%%+ nonPbeniEn recorB reBeQnition
A RECCR9 de"nition con6icted 7ith a &revious de"nition.
Cne o- the -ollo7in. occurred=
u There 7ere diHerent nu%'ers o- "elds.
u There 7ere diHerent nu%'ers o- 'its in a "eld.
u There 7as a diHerent la'el.
u There 7ere diHerent initialiDers.
A*%%( sUntaO error :
A token at the current location caused a syntax error.
Cne o- the -ollo7in. %ay have occurred=
u A dot &re"1 7as added to or o%itted -ro% a directive.
u A reserved 7ord such as ! or I8E! 7as used as an
identi"er.
u An instruction 7as used that 7as not availa'le 7ith the
current &rocessor or co&rocessor selection.
u A co%&arison run$ti%e o&erator such as ==! 7as used in a
conditional asse%'ly state%ent instead o- a relational
o&erator such as E'!.
u An instruction or directive 7as .iven too -e7 o&erands.
u An o'solete directive 7as used.
A*%%T sUntaO error in eOpression
An e1&ression on the current line contained a synta1 error.
This error %essa.e %ay also 'e a side eHect o- a &recedin.
&ro.ra% error.
A*%$% inFaliB tUpe eOpression
The o&erand to T&I or PT/ 7as not a valid ty&e e1&ression.
A*%$$ Bistance inFaliB Gor WorB siCe oG cDrrent seEHent
A procedure definition or a code label defined with LABEL specified an
address size that was incompatible with the current segment size.
Cne o- the -ollo7in. occurred=
u A NEA/$) or 1A/$) &rocedure 7as de"ned in a 32$'it
se.%ent.
u A NEA/,* or 1A/,* &rocedure 7as de"ned in a 1;$'it
se.%ent.
u A code la'el de"ned 7ith LA"EL s&eci"ed 1A/$) or
NEA/$) in a 32$'it se.%ent.
u A code la'el de"ned 7ith LA"EL s&eci"ed 1A/,* or
NEA/,* in a 1;$'it se.%ent.
A*%$* P/O!. MA!/O. or Hacro repeat BirectiFe HDst
preceBe LO!AL
A LO!AL directive %ust 'e i%%ediately &receded 'y a
MA!/O3 P/O!3 %acro re&eat directive such as /EPEAT3
2&ILE3 or 1O/!3 or another LO!AL directive.
A*%$, .MODEL HDst preceBe tVis BirectiFe
A simplified segment directive or a .STARTUP or .EXIT directive was not
preceded by a .MODEL directive.
A .MODEL directive %ust s&eci-y the %odel de-aults 'e-ore a
si%&li"ed se.%ent directive3 or a .TA/TUP or .E7IT
directive %ay 'e used.
A*%$- cannot BeQne as pDblic or eOternal : identifer
Cnly la'els3 &rocedures3 and nu%eric e,uates can 'e %ade
&u'lic or e1ternal usin. PU"LI!3 E7TE/N3 or E7TE/NDE1.
Local code la'els cannot 'e %ade &u'lic.
A*%$# seEHent attribDtes cannot cVanEe : attribute
A segment was reopened with different attributes than it was opened with
originally.
Ahen a EGMENT directive o&ens a &reviously de"ned
se.%ent3 the ne7ly o&ened se.%ent inherits the attri'utes
the se.%ent 7as de"ned 7ith.
A*%$) eOpression eOpecteB
The assembler expected an expression at the current location but found one of
the following:
u A unary o&erator 7ithout an o&erand
u A 'inary o&erator 7ithout t7o o&erands
u An e%&ty &air o- &arentheses3 !3 or 'rac0ets3 ( )
A*%$+ operator eOpecteB
An expression operator was expected at the current location.
Cne &ossi'le cause o- this error is a %issin. co%%a 'et7een
e1&ressions in an e1&ression list.
A*%$( inFaliB Dse oG eOternal sUHbol : identifer
An attempt was made to compare the given external symbol using a relational
operator.
The co%&arison cannot 'e %ade 'ecause the value or address
o- an e1ternal sy%'ol is not 0no7n at asse%'ly ti%e.
A*%$T operanB HDst be /E!O/D tUpe or QelB
The operand following the WIDTH or MASK operator was not valid.
The 2IDT& o&erator ta0es an o&erand that is the na%e o- a
"eld or a record. The MA0 o&erator ta0es an o&erand that is
the na%e o- a "eld or a record ty&e.
A*%*% iBentiQer not a recorB : identifer
A record ty&e 7as e1&ected at the current location.
A*%*$ recorB constants cannot span line breaIs
A record constant %ust 'e de"ned on one &hysical line. A line
ended in the %iddle o- the de"nition o- a record constant.
A*%** instrDction operanBs HDst be tVe saHe siCe
The o&erands to an instruction did not have the sa%e siDe.
A*%*, instrDction operanB HDst VaFe siCe
At least one o- the o&erands to an instruction %ust have a
0no7n siDe.
A*%*- inFaliB operanB siCe Gor instrDction
The siDe o- an o&erand 7as not valid.
A*%*# operanBs HDst be in saHe seEHent
Relocata'le o&erands used 7ith a relational or %inus o&erator
7ere not located in the sa%e se.%ent.
A*%*) constant eOpecteB
The asse%'ler e1&ected a constant e1&ression at the current
location. A constant e1&ression is a nu%eric e1&ression that
can 'e resolved at asse%'ly ti%e.
A*%*+ operanB HDst be a HeHorU eOpression
The right operand of a PTR expression was not a memory expression.
Ahen the le-t o&erand o- the PT/ o&erator is a structure or
union ty&e3 the ri.ht o&erand %ust 'e a %e%ory e1&ression.
A*%*( eOpression HDst be a coBe aBBress
An expression evaluating to a code address was expected.
Cne o- the -ollo7in. occurred=
u &O/T 7as not -ollo7ed 'y a code address.
u NEA/ PT/ or 1A/ PT/ 7as a&&lied to so%ethin. that 7as
not a code address.
A*%*T HDltiple base reEisters not alloWeB
An attempt was made to combine two base registers in a memory expression.
+or e1a%&le3 the -ollo7in. e1&ressions cause this error=
('1T'&)
('1)('&)
In another example, given the following definition:
id1 &roc ar.1='yte
either of the following lines causes this error:
%ov al3 ('1).ar.1
lea a13 ar.1('1)
A*%,% HDltiple inBeO reEisters not alloWeB
An attempt was made to combine two index registers in a memory expression.
+or e1a%&le3 the -ollo7in. e1&ressions cause this error=
(siTdi)
(di)(si)
A*%,$ HDst be inBeO or base reEister
An attempt was made to use a register that was not a base or index register in a
memory expression.
+or e1a%&le3 the -ollo7in. e1&ressions cause this error=
(a1)
('l)
A*%,* inFaliB Dse oG reEister
An attempt was made to use a register that was not valid for the intended use.
Cne o- the -ollo7in. occurred=
u O11ET 7as a&&lied to a re.ister. O11ET can 'e a&&lied
to a re.ister under the M#$% o&tion.!
u A s&ecial 3K; re.ister 7as used in an invalid conte1t.
u A re.ister 7as cast 7ith PT/ to a ty&e o- invalid siDe.
u A re.ister 7as s&eci"ed as the ri.ht o&erand o- a se.%ent
override
o&erator :!.
u A re.ister 7as s&eci"ed as the ri.ht o&erand o- a 'inary
%inus o&erator \ !.
u An atte%&t 7as %ade to %ulti&ly re.isters usin. the *
o&erator.
u 2rac0ets ; <! 7ere %issin. around a re.ister that 7as
added to so%ethin..
A*%,, inFaliB INVO0E arEDHent : arEDHent number
The INVO0E directive 7as &assed a s&ecial 3K; re.ister3 or a
re.ister &air containin. a 'yte re.ister or s&ecial 3K; re.ister.
These re.isters are ille.al 7ith INVO0E.
A*%,- HDst be in seEHent blocI
One of the following was found outside of a segment block:
u An instruction
u A la'el de"nition
u A T&I o&erator
u A @ o&erator
u A &rocedure de"nition
u An ALIGN directive
u An O/G directive
A*%,# DUP too coHpleO
A declaration usin. the DUP o&erator resulted in a data
structure 7ith an internal re&resentation that 7as too lar.e.
A*%,) too HanU initial FalDes Gor strDctDre: structure
The .iven structure 7as de"ned 7ith %ore initialiDers than the
nu%'er o- "elds in the ty&e declaration o- the structure.
A*%,+ stateHent not alloWeB insiBe strDctDre BeQnition
A structure definition contained an invalid statement.
A structure cannot contain instructions3 la'els3 &rocedures3
control$6o7 directives3 .TA/TUP3 or .E7IT.
A*%,( HissinE operanB Gor Hacro operator
The asse%'ler -ound the end o- a %acroYs &ara%eter list
i%%ediately a-ter the K or 3 o&erator.
A*%,T line too lonE
A source-file line exceeded the limit of 512 characters.
I- %ulti&le &hysical lines are concatenated 7ith the line$
continuation character
c !3 the resultin. lo.ical line is still li%ited to G12 characters.
A*%-% seEHent reEister not alloWeB in conteOt
A se.%ent re.ister 7as s&eci"ed -or an instruction that cannot
ta0e a se.%ent re.ister.
A*%-$ strinE or teOt literal too lonE
A strin. or te1t literal3 or a %acro -unction return value3
e1ceeded the li%it o- 2GG characters.
A*%-* stateHent too coHpleO
A statement was too complex for the assembler to parse.
Reduce either the nu%'er o- to0ens or the nu%'er o- -or7ard$
re-erenced identi"ers.
A*%-, iBentiQer too lonE
An identi"er e1ceeded the li%it o- 2?M characters.
A*%-- inFaliB cVaracter in Qle
The source "le contained a character outside a co%%ent3
strin.3 or literal that 7as not reco.niDed as an o&erator or
other le.al character.
A*%-# HissinE anEle bracIet or brace in literal
An unmatched angle bracket (either < or >) or brace (either { or }) was found
in a literal constant or an initializer.
Cne o- the -ollo7in. occurred=
u A &air o- an.le 'rac0ets or 'races 7as not co%&lete.
u An an.le 'rac0et 7as intended to 'e literal3 'ut it 7as not
&receded 'y an e1cla%ation &oint K! to indicate a literal
character.
A*%-) HissinE sinEle or BoDble YDotation HarI in strinE
An unmatched quotation mark (either ' or ") was found in a string.
Cne o- the -ollo7in. %ay have occurred=
u A &air o- ,uotation %ar0s around a strin. 7as not co%&lete.
u A &air o- ,uotation %ar0s around a strin. 7as -or%ed o-
one sin.le and one dou'le ,uotation %ar0.
u A sin.le or dou'le ,uotation %ar0 7as intended to 'e
literal3 'ut the surroundin. ,uotation %ar0s 7ere the sa%e
0ind as the literal one.
A*%-+ eHptU 9nDll: strinE
A string consisted of a delimiting pair of quotation marks and no characters
within.
+or a strin. to 'e valid3 it %ust contain 1\2GG characters.
A*%-( nonBiEit in nDHber
A number contained a character that was not in the set of characters used by
the current radix (base).
This error can occur i- a 2 or 9 radi1 s&eci"er is used 7hen the
de-ault radi1 is one that includes that letter as a valid di.it.
A*%-T sUntaO error in SoatinEPpoint constant
A 6oatin.$&oint constant contained an invalid character.
A*%#% real or "!D nDHber not alloWeB
A floating-point (real) number or binary coded decimal (BCD) constant was
used other than as a data initializer.
Cne o- the -ollo7in. occurred=
u A real nu%'er or a 2C9 7as used in an e1&ression.
u A real nu%'er 7as used to initialiDe a directive other than
D2O/D3 '2O/D3 or T"YTE.
u A 2C9 7as used to initialiDe a directive other than T"YTE.
A*%#$ teOt iteH reYDireB
A literal constant or text macro was expected.
Cne o- the -ollo7in. 7as e1&ected=
u A literal constant3 7hich is te1t enclosed in 5 6.
u A te1t %acro na%e.
u A %acro -unction call.
u A X -ollo7ed 'y a constant e1&ression.
A*%#* GorceB error
The conditional$error directive .E// or .E//$ 7as used to
.enerate this error.
A*%#, GorceB error : FalDe eYDal to %
The conditional$error directive .E//E 7as used to .enerate
this error.
A*%#- GorceB error : FalDe not eYDal to %
The conditional$error directive .E//N8 7as used to .enerate
this error.
A*%## GorceB error : sUHbol not BeQneB
The conditional$error directive .E//NDE1 7as used to
.enerate this error.
A*%#) GorceB error : sUHbol BeQneB
The conditional$error directive .E//DE1 7as used to .enerate
this error.
A*%#+ GorceB error : strinE blanI
The conditional$error directive .E//" 7as used to .enerate
this error.
A*%#( GorceB error : strinE not blanI
The conditional$error directive .E//N" 7as used to .enerate
this error.
A*%#T GorceB error : strinEs eYDal
The conditional$error directive .E//IDN or .E//IDNI 7as
used to .enerate this error.
A*%)% GorceB error : strinEs not eYDal
The conditional$error directive .E//DI1 or .E//DI1I 7as used
to .enerate this error.
A*%)$ [[ELE]]I1*J.E//* not alloWeB : sinElePpass asseHbler
A directive for a two-pass assembler was found.
The Microso-t Macro Asse%'ler MA#M! is a one$&ass
asse%'ler. MA#M does not acce&t the I1*3 ELEI1*3 and
.E//* directives.
This error also occurs i- an ELE directive -ollo7s an I1$
directive.
A*%)* eOpression too coHpleO Gor .UNTIL!78
An expression used in the condition that follows .UNTILCXZ was too
complex.
The .UNTIL!78 directive can ta0e only one e1&ression3 7hich
can contain only == or K=. It cannot ta0e other co%&arison
o&erators or %ore co%&le1 e1&ressions usin. o&erators li0e NN.
A*%), can ALIGN onlU to poWer oG * : expression
The expression specified with the ALIGN directive was invalid.
The ALIGN e1&ression %ust 'e a &o7er o- 2 'et7een 2 and
2G;3 and %ust 'e less than or e,ual to the ali.n%ent o- the
current se.%ent3 structure3 or union.
A*%)- strDctDre aliEnHent HDst be $. *. or -
The ali.n%ent s&eci"ed in a structure de"nition 7as invalid.
A*%)# eOpecteB : token
The asse%'ler e1&ected the .iven to0en.
A*%)) incoHpatible !PU HoBe anB seEHent siCe
An attempt was made to open a segment with a USE16, USE32, or FLAT
attribute that was not compatible with the specified CPU, or to change to a 16-
bit CPU while in a 32-bit segment.
The UE,* and 1LAT attri'utes %ust 'e &receded 'y one o-
the -ollo7in. &rocessor directives= .,()3 .,()!3 .,()P3 .-()3
or .-()P.
A*%)+ LO!0 HDst be GolloWeB bU a HeHorU operation
The LO!0 &re"1 &receded an invalid instruction. No
instruction can ta0e the LO!0 &re"1 unless one o- its
o&erands is a %e%ory e1&ression.
A*%)( instrDction preQO not alloWeB
Cne o- the &re"1es /EP3 /EPE3 /EPNE3 or LO!0 &receded an
instruction -or 7hich it 7as not valid.
A*%)T no operanBs alloWeB Gor tVis instrDction
Cne or %ore o&erands 7ere s&eci"ed 7ith an instruction that
ta0es no o&erands.
A*%+% inFaliB instrDction operanBs
Cne or %ore o&erands 7ere not valid -or the instruction they
7ere s&eci"ed 7ith.
A*%+$ initialiCer too larEe Gor speciQeB siCe
An initialiDer value 7as too lar.e -or the data area it 7as
initialiDin..
A*%+* cannot access sUHbol in EiFen seEHent or EroDp:
identifer
The .iven identi"er cannot 'e addressed -ro% the se.%ent or
.rou& s&eci"ed.
A*%+, operanBs VaFe BiZerent GraHes
Two operands in an expression were in different frames.
#u'traction o- &ointers re,uires the &ointers to 'e in the sa%e
-ra%e. #u'traction o- t7o e1&ressions that have diHerent
eHective -ra%es is not allo7ed. An eHective -ra%e is
calculated -ro% the se.%ent3 .rou&3 or se.%ent re.ister.
A*%+- cannot access label tVroDEV seEHent reEisters
An atte%&t 7as %ade to access a la'el throu.h a se.%ent
re.ister that 7as not assu%ed to its se.%ent or .rou&.
A*%+# [DHp Bestination too Gar ;: bU ?n? bUtes<
The destination specified with a jump instruction was too far from the
instruction.
Cne o- the -ollo7in. %ay 'e a solution=
u Ena'le the L=MP o&tion.
u Re%ove the &O/T o&erator. I- &O/T has -orced a Fu%&
that is too -ar3 n is the nu%'er o- 'ytes out o- ran.e.
u Rearran.e code so that the Fu%& is no lon.er out o- ran.e.
A*%+) [DHp Bestination HDst speciGU a label
A direct Fu%&Ys destination %ust 'e relative to a code la'el.
A*%++ instrDction Boes not alloW NEA/ inBirect aBBressinE
A conditional Fu%& or loo& cannot ta0e a %e%ory o&erand. It
%ust 'e .iven a relative address or la'el.
A*%+( instrDction Boes not alloW 1A/ inBirect aBBressinE
A conditional Fu%& or loo& cannot ta0e a %e%ory o&erand. It
%ust 'e .iven a relative address or la'el.
A*%+T instrDction Boes not alloW 1A/ Birect aBBressinE
A conditional Fu%& or loo& cannot 'e to a diHerent se.%ent or
.rou&.
A*%(% [DHp Bistance not possible in cDrrent !PU HoBe
A distance was specified with a jump instruction that was incompatible with
the current processor mode.
+or e1a%&le3 ?K$'it Fu%&s re,uire .,() or a'ove.
A*%($ HissinE operanB aGter DnarU operator
An o&erator re,uired an o&erand3 'ut no o&erand -ollo7ed.
A*%(* cannot HiO $)P anB ,*Pbit reEisters
An address expression contained both 16- and 32-bit registers.
+or e1a%&le3 the -ollo7in. e1&ression causes this error=
('1Tedi)
A*%(, inFaliB scale FalDe
A re.ister scale 7as s&eci"ed that 7as not 13 23 ?3 or K.
A*%(- constant FalDe too larEe
A constant 7as s&eci"ed that 7as too 'i. -or the conte1t in
7hich it 7as used.
A*%(# instrDction or reEister not accepteB in cDrrent !PU
HoBe
An attempt was made to use an instruction, register, or keyword that was not
valid for the current processor mode.
+or e1a%&le3 32$'it re.isters re,uire .,() or a'ove. Control
re.isters such as CR< re,uire &rivile.ed %ode .,()P or
a'ove. This error 7ill also 'e .enerated -or the NEA/,*3
1A/,*3 and 1LAT 0ey7ords3 7hich re,uire .,() or a'ove.
A*%() reserFeB WorB eOpecteB
Cne or %ore ite%s in the list s&eci"ed 7ith a NO0EY2O/D
o&tion 7ere not reco.niDed as reserved 7ords.
A*%(+ instrDction GorH reYDires (%,()J-()
An instruction was used that was not compatible with the current processor
mode.
Cne o- the -ollo7in. &rocessor directives %ust &recede the
instruction= .,()3 .,()!3 .,()P3 .-()3 or .-()P.
A*%(( END BirectiFe reYDireB at enB oG Qle
The asse%'ler reached the end o- the %ain source "le and did
not "nd an .END directive.
A*%(T too HanU bits in /E!O/D : identifer
One of the following occurred:
u Too %any 'its 7ere de"ned -or the .iven record "eld.
u Too %any total 'its 7ere de"ned -or the .iven record.
The siDe li%it -or a record or a "eld in a record is 1; 'its 7hen
doin. 1;$'it arith%etic or 32 'its 7hen doin. 32$'it
arith%etic.
A*%T% positiFe FalDe eOpecteB
A positive value was not found in one of the following situations:
u The startin. &osition s&eci"ed -or U"T/ or ADbtr
u The nu%'er o- data o'Fects s&eci"ed -or !OMM
u The ele%ent siDe s&eci"ed -or !OMM
A*%T$ inBeO FalDe past enB oG strinE
An inde1 value e1ceeded the len.th o- the strin. it re-erred to
7hen used 7ith INT/3 U"T/3 AIntr3 or ADbtr.
A*%T* coDnt HDst be positiFe or Cero
The o&erand s&eci"ed to the U"T/ directive3 ADbtr
%acro -unction3 &L o&erator3 &/ o&erator3 or DUP o&erator
7as ne.ative.
A*%T, coDnt FalDe too larEe
The len.th ar.u%ent s&eci"ed -or U"T/ or ADbtr
e1ceeded the len.th o- the s&eci"ed strin..
A*%T- operanB HDst be relocatable
An operand was not relative to a label.
Cne o- the -ollo7in. occurred=
u An o&erand s&eci"ed 7ith the END directive 7as not
relative to a la'el.
u An o&erand to the EG o&erator 7as not relative to a la'el.
u The ri.ht o&erand to the %inus o&erator 7as relative to a
la'el3 'ut the le-t o&erand 7as not.
u The o&erands to a relational o&erator 7ere either not 'oth
inte.er constants or not 'oth %e%ory o&erands. Relational
o&erators can ta0e o&erands that are 'oth addresses or
'oth non$addresses 'ut not one o- each.
A*%T# constant or relocatable label eOpecteB
The o&erand s&eci"ed %ust 'e a constant e1&ression or a
%e%ory oHset.
A*%T) seEHent. EroDp. or seEHent reEister eOpecteB
A segment or group was expected but was not found.
Cne o- the -ollo7in. occurred=
u The le-t o&erand s&eci"ed 7ith the se.%ent override
o&erator :! 7as not a se.%ent re.ister C#3 9#3 ##3 E#3 +#3
or >#!3 .rou& na%e3 se.%ent na%e3 or se.%ent
e1&ression.
u The AUME directive 7as .iven a se.%ent re.ister
7ithout a valid se.%ent address3 se.%ent re.ister3 .rou&3
or the s&ecial 1LAT .rou&.
A*%T+ seEHent eOpecteB : identifer
The G/OUP directive 7as .iven an identi"er that 7as not a
de"ned se.%ent.
A*%T( inFaliB operanB Gor O11ET
The e1&ression -ollo7in. the O11ET o&erator %ust 'e a
%e%ory e1&ression or an i%%ediate e1&ression.
A*%TT inFaliB Dse oG eOternal absolDte
An attempt was made to subtract a constant defined in another module from an
expression.
Lou can avoid this error 'y &lacin. constants in include "les
rather than %a0in. the% e1ternal.
A*$%% seEHent or EroDp not alloWeB
An atte%&t 7as %ade to use a se.%ent or .rou& in a 7ay that
7as not valid. #e.%ents or .rou&s cannot 'e added.
A*$%$ cannot aBB tWo relocatable labels
An atte%&t 7as %ade to add t7o e1&ressions that 7ere 'oth
relative to a la'el.
A*$%* cannot aBB HeHorU eOpression anB coBe label
An atte%&t 7as %ade to add a code la'el to a %e%ory
e1&ression.
A*$%, seEHent eOceeBs )-0 liHit
A 1;$'it se.%ent e1ceeded the siDe li%it o- ;?E.
A*$%- inFaliB tUpe Gor Bata Beclaration : type
The .iven ty&e 7as not valid -or a data declaration.
A*$%# &IG& anB LO2 reYDire iHHeBiate operanBs
The o&erand s&eci"ed 7ith either the &IG& or the LO2
o&erator 7as not an i%%ediate e1&ression.
A*$%+ cannot VaFe iHplicit Gar [DHp or call to near label
An atte%&t 7as %ade to %a0e an i%&licit -ar Fu%& or call to a
near la'el in another se.%ent.
A*$%( Dse oG reEister assDHeB to E//O/
An atte%&t 7as %ade to use a re.ister that had 'een
assu%ed to ERRCR 7ith the AUME directive.
A*$%T onlU WVite space or coHHent can GolloW bacIslasV
A character other than a se%icolon N! or a 7hite$s&ace
character s&aces or TA2 characters! 7as -ound a-ter a line$
continuation character c !.
A*$$% !OMMENT BeliHiter eOpecteB
A delimiter character was not specified for a COMMENT directive.
The deli%iter character is s&eci"ed 'y the "rst character that
is not 7hite s&ace s&aces or TA2 characters! a-ter the
!OMMENT directive. The co%%ent consists o- all te1t
-ollo7in. the deli%iter until the end o- the line containin. the
ne1t a&&earance o- the deli%iter.
A*$$$ conSictinE paraHeter BeQnition
A &rocedure de"ned 7ith the P/O! directive did not %atch its
&rototy&e as de"ned 7ith the P/OTO directive.
A*$$* P/O! anB prototUpe callinE conFentions conSict
A &rocedure 7as de"ned in a &rototy&e usin. the P/OTO3
E7TE/NDE13 or E7TE/N directive!3 'ut the callin.
convention did not %atch the corres&ondin. P/O! directive.
A*$$, inFaliB raBiO taE
The s&eci"ed radi1 7as not a nu%'er in the ran.e 2\1;.
A*$$- INVO0E arEDHent tUpe HisHatcV : arEDHent number
The ty&e o- the ar.u%ents &assed usin. the INVO0E directive
did not %atch the ty&e o- the &ara%eters in the &rototy&e o-
the &rocedure 'ein. invo0ed.
A*$$# inFaliB coprocessor reEister
The co&rocessor inde1 s&eci"ed 7as ne.ative or .reater than
M.
A*$$) instrDctions anB initialiCeB Bata not alloWeB in AT
seEHents
An instruction or initialized data was found in a segment defined with the AT
attribute.
9ata in AT se.%ents %ust 'e declared 7ith the 4 initialiDer.
A*$$+ JAT option reYDires TINY HeHorU HoBel
The /AT option was specified on the assembler command line, but the
program being assembled did not specify the TINY memory model with the
.MODEL directive.
This error is only .enerated -or %odules that s&eci-y a start
address or use the .TA/TUP directive.
A*$$( cannot VaFe seEHent aBBress reGerences WitV TINY
HoBel
An attempt was made to reference a segment in a TINY model program.
All TINY %odel code and data %ust 'e accessed 7ith NEA/
addresses.
A*$$T lanEDaEe tUpe HDst be speciQeB
A procedure definition or prototype was not given a language type.
A lan.ua.e ty&e %ust 'e declared in each &rocedure
de"nition or &rototy&e i- a de-ault lan.ua.e ty&e is not
s&eci"ed. A de-ault lan.ua.e ty&e is set usin. either the
.MODEL directive3 OPTION LANG3 or the ML co%%and$line
o&tions *>c or *>d.
A*$*% P/OLOGUE HDst be Hacro GDnction
The identifier specified with the OPTION PROLOGUE directive was not
recognized as a defined macro function.
The user$de"ned &rolo.ue %ust 'e a %acro -unction that
returns the nu%'er o- 'ytes needed -or local varia'les and
any e1tra s&ace needed -or the %acro -unction.
A*$*$ EPILOGUE HDst be Hacro proceBDre
The identifier specified with the OPTION EPILOGUE directive was not
recognized as a defined macro procedure.
The user$de"ned e&ilo.ue %acro cannot return a value.
A*$** alternate iBentiQer not alloWeB WitV E7TE/NDE1
An attempt was made to specify an alternate identifier with an EXTERNDEF
directive.
Lou can s&eci-y an o&tional alternate identi"er 7ith the
E7TE/N directive 'ut not 7ith E7TE/NDE1.
A*$*, teOt Hacro nestinE leFel too Beep
A te1t %acro 7as nested too dee&ly. The nestin. li%it -or te1t
%acros is ?<.
A*$*# HissinE Hacro arEDHent
A re,uired ar.u%ent to AIntr3 ADbtr3 or a user$de"ned
%acro 7as not s&eci"ed.
A*$*) E7ITM DseB inconsistentlU
The EXITM directive was used both with and without a return value in the
same macro.
A %acro &rocedure returns a valueN a %acro -unction does not.
A*$*+ Hacro GDnction arEDHent list too lonE
There 7ere too %any characters in a %acro -unctionYs
ar.u%ent list. This error a&&lies also to a &rolo.ue %acro
-unction called i%&licitly 'y the P/O! directive.
A*$*T VA/A/G paraHeter HDst be last paraHeter
A parameter other than the last one was given the VARARG attribute.
The :VA/A/G s&eci"cation can 'e a&&lied only to the last
&ara%eter in a &ara%eter list -or %acro and &rocedure
de"nitions and &rototy&es. Lou cannot use %ulti&le :VA/A/G
s&eci"cations in a %acro.
A*$,% VA/A/G paraHeter not alloWeB WitV LO!AL
An atte%&t 7as %ade to s&eci-y :VA/A/G as the ty&e in a
&rocedureYs LO!AL declaration.
A*$,$ VA/A/G paraHeter reYDires ! callinE conFention
A VA/A/G &ara%eter 7as s&eci"ed in a &rocedure de"nition
or &rototy&e3 'ut the !3 Y!ALL3 or TD!ALL callin.
convention 7as not s&eci"ed.
A*$,* O/G neeBs a constant or local oZset
The expression specified with the ORG directive was not valid.
O/G re,uires an i%%ediate e1&ression 7ith no re-erence to
an e1ternal la'el or to a la'el outside the current se.%ent.
A*$,, reEister FalDe oFerWritten bU INVO0E
A register was passed as an argument to a procedure, but the code generated
by INVOKE to pass other arguments destroyed the contents of the register.
The AB3 AL3 AH3 EAB3 9B3 9L3 9H3 and E9B re.isters %ay 'e
used 'y the asse%'ler to &er-or% data conversion.
5se a diHerent re.ister.
A*$,- strDctDre too larEe to pass WitV INVO0E : arEDHent
number
An attempt was made with INVOKE to pass a structure that exceeded 255
bytes.
Pass structures 'y re-erence i- they are lar.er than 2GG 'ytes.
A*$,) too HanU arEDHents to INVO0E
The nu%'er o- ar.u%ents &assed usin. the INVO0E directive
e1ceeded the nu%'er o- &ara%eters in the &rototy&e -or the
&rocedure 'ein. invo0ed.
A*$,+ too GeW arEDHents to INVO0E
The nu%'er o- ar.u%ents &assed usin. the INVO0E directive
7as -e7er than the nu%'er o- re,uired &ara%eters s&eci"ed
in the &rototy&e -or the &rocedure 'ein. invo0ed.
A*$,( inFaliB Bata initialiCer
The initializer list for a data definition was invalid.
This error can 'e caused 'y usin. the R radi1 override 7ith too
-e7 di.its.
A*$-% /ET operanB too larEe
The o&erand s&eci"ed to /ET3 /ETN3 or /ET1 e1ceeded t7o
'ytes.
A*$-$ too HanU operanBs to instrDction
Too %any o&erands 7ere s&eci"ed 7ith a strin. control
instruction.
A*$-* cannot VaFe Hore tVan one .ELE claDse per .I1 blocI
The assembler found more than one .ELSE clause within the current .IF
block.
5se .ELEI1 -or all 'ut the last 'loc0.
A*$-, eOpecteB Bata label
The LENGT&O13 I8EO13 LENGT&3 or I8E o&erator 7as
a&&lied to a non$data la'el3 or the I8EO1 or I8E o&erator
7as a&&lied to a ty&e.
A*$-- cannot nest proceBDres
An atte%&t 7as %ade to nest a &rocedure containin. a
&ara%eter3 local varia'le3 UE clause3 or a state%ent that
.enerated a ne7 se.%ent or .rou&.
A*$-# E7PO/T HDst be 1A/ : procedure
The given procedure was given EXPORT visibility and NEAR distance.
All E7PO/T &rocedures %ust 'e 1A/. The de-ault visi'ility
%ay have 'een set 7ith the OPTION P/O!:E7PO/T
state%ent or the MALL or !OMPA!T %e%ory %odels.
A*$-) proceBDre BeclareB WitV tWo FisibilitU attribDtes :
procedure
The given procedure was given conflicting visibilities.
A &rocedure 7as declared 7ith t7o diHerent visi'ilities
PU"LI!3 P/IVATE3 or E7PO/T!. The P/O! and P/OTO
state%ents -or a &rocedure %ust have the sa%e visi'ility.
A*$-+ Hacro label not BeQneB : macrolabel
The given macro label was not found.
A %acro la'el is de"ned 7ith :macrolabel.
A*$-( inFaliB sUHbol tUpe in eOpression : identifer
The given identifier was used in an expression in which it was not valid.
+or e1a%&le3 a %acro &rocedure na%e is not allo7ed in an
e1&ression.
A*$-T bUte reEister cannot be Qrst operanB
A 'yte re.ister 7as s&eci"ed to an instruction that cannot ta0e
it as the "rst o&erand.
A*$#% WorB reEister cannot be Qrst operanB
A 7ord re.ister 7as s&eci"ed to an instruction that cannot
ta0e it as the "rst o&erand.
A*$#$ special reEister cannot be Qrst operanB
A s&ecial re.ister 7as s&eci"ed to an instruction that cannot
ta0e it as the "rst o&erand.
A*$#* coprocessor reEister cannot be Qrst operanB
A co&rocessor stac0! re.ister 7as s&eci"ed to an instruction
that cannot ta0e it as the "rst o&erand.
A*$#, cannot cVanEe siCe oG eOpression coHpDtations
An atte%&t 7as %ade to set the e1&ression 7ord siDe 7hen
the siDe had 'een already set usin. the E7P/$)3 E7P/,*3
EGMENT:UE,*3 or EGMENT:1LAT o&tion or the .,() or
hi.her &rocessor selection directive.
A*$#- sUntaO error in controlPSoW BirectiFe
The condition -or a control$6o7 directive such as .I1 or
.2&ILE! contained a synta1 error.
A*$## cannot Dse $)Pbit reEister WitV a ,*Pbit aBBress
An attempt was made to mix 16-bit and 32-bit offsets in an expression.
5se a 32$'it re.ister 7ith a sy%'ol de"ned in a 32$'it
se.%ent.
+or e1a%&le3 i- id1 is de"ned in a 32$'it se.%ent3 the -ollo7in.
causes this error=
id1('1)
A*$#) constant FalDe oDt oG ranEe
An invalid value was specified for the PAGE directive.
The "rst &ara%eter o- the PAGE directive can 'e either < or a
value in the ran.e 1<\2GG. The second &ara%eter o- the PAGE
directive can 'e either < or a value in the ran.e ;<\2GG.
A*$#+ HissinE riEVt parentVesis
A right parenthesis, ), was missing from a macro function call.
2e sure that &arentheses are in &airs i- nested.
A*$#( tUpe is WronE siCe Gor reEister
An attempt was made to assume a general-purpose register to a type with a
different size than the register.
+or e1a%&le3 the -ollo7in. &air o- state%ents causes this
error=
A##5ME '1=-ar &tr 'yte N -ar &ointer is ? or ; 'ytes
A##5ME al=7ord N al is a 'yte re.3 cannot hold 7ord
A*$#T strDctDre cannot be instanceB
An atte%&t 7as %ade to create an instance o- a structure
7hen there 7ere no "elds or data de"ned in the structure
de"nition or 7hen O/G 7as used in the structure de"nition.
A*$)% nonPbeniEn strDctDre reBeQnition : label incorrect
A la'el .iven in a structure rede"nition either did not e1ist in
the ori.inal de"nition or 7as out o- order in the rede"nition.
A*$)$ nonPbeniEn strDctDre reBeQnition : too GeW labels
Not enou.h %e%'ers 7ere de"ned in a structure rede"nition.
A*$)* OLDT/U!TJNOOLDT/U!T state cannot be cVanEeB
Cnce the OLDT/U!T or NOOLDT/U!T o&tion has 'een
s&eci"ed and a structure has 'een de"ned3 the structure
sco&in. cannot 'e altered or res&eci"ed in the sa%e %odule.
A*$), nonPbeniEn strDctDre reBeQnition : incorrect
initialiCers
A STRUCT or UNION was redefined with a different initializer value.
Ahen structures and unions are de"ned %ore than once3 the
de"nitions %ust 'e identical. This error can 'e caused 'y
usin. a varia'le as an initialiDer and havin. the value o- the
varia'le chan.e 'et7een de"nitions.
A*$)- nonPbeniEn strDctDre reBeQnition : too GeW
initialiCers
A STRUCT or UNION was redefined with too few initializers.
Ahen structures and unions are de"ned %ore than once3 the
de"nitions %ust 'e identical.
A*$)# nonPbeniEn strDctDre reBeQnition : label Vas
incorrect oZset
The offset of a label in a redefined STRUCT or UNION differs from the
original definition.
Ahen structures and unions are de"ned %ore than once3 the
de"nitions %ust 'e identical. This error can 'e caused 'y a
%issin. %e%'er or 'y a %e%'er that has a diHerent siDe than
in its ori.inal de"nition.
A*$)) strDctDre QelB eOpecteB
The right side of a dot operator (.) is not a structure field.
This error %ay occur 7ith so%e code acce&ta'le to &revious
versions o- the asse%'ler. To ena'le the old 'ehavior3 use
OPTION OLDT/U!T3 7hich is auto%atically ena'led 'y
OPTION M#$% or the *4% co%%and$line o&tion.
A*$)+ DneOpecteB literal GoDnB in eOpression
A literal was found where an expression was expected.
Cne o- the -ollo7in. %ay have occurred=
u A literal 7as used as an initialiDer
u A record ta. 7as o%itted -ro% a record constant
A*$)T BiFiBe bU Cero in eOpression
An expression contains a divisor whose value is equal to zero.
Chec0 that the synta1 o- the e1&ression is correct and that the
divisor 7hether constant or varia'le! is correctly initialiDed.
A*$+% BirectiFe HDst appear insiBe a Hacro
A GOTO or E7ITM directive 7as -ound outside the 'ody o- a
%acro.
A*$+$ cannot eOpanB Hacro GDnction
A synta1 error &revented the asse%'ler -ro% e1&andin. the
%acro -unction.
A*$+* too GeW bits in /E!O/D
There 7as an atte%&t to de"ne a record "eld o- < 'its.
A*$+, Hacro GDnction cannot reBeQne itselG
There 7as an atte%&t to de"ne a %acro -unction inside the
'ody o- a %acro -unction 7ith the sa%e na%e. This error can
also occur 7hen a %e%'er o- a chain o- %acros atte%&ts to
rede"ne a &revious %e%'er o- the chain.
A*$+# inFaliB YDaliQeB tUpe
An identi"er 7as encountered in a ,uali"ed ty&e that 7as not
a ty&e3 structure3 record3 union3 or &rototy&e.
A*$+) SoatinE point initialiCer on an inteEer Fariable
An atte%&t 7as %ade to use a 6oatin.$&oint initialiDer 7ith
D2O/D3 '2O/D3 or T"YTE. Cnly inte.er initialiDers are
allo7ed.
A*$++ nesteB strDctDre iHproperlU initialiCeB
The nested structure initialization could not be resolved.
This error can 'e caused 'y usin. diHerent 'e.innin. and
endin. deli%iters in a nested structure initialiDation.
A*$+( inFaliB Dse oG 1LAT
There was an ambiguous reference to FLAT as a group.
This error is .enerated 7hen there is a re-erence to 1LAT
instead o- a 1LAT su'.rou&. +or e1a%&le3
%ov a13 +LAT N >enerates A21MK
%ov a13 #E> +LAT=Odata N Correct
A*$+T strDctDre iHproperlU initialiCeB
There was an error in a structure initializer.
Cne o- the -ollo7in. occurred=
u The initialiDer is not a valid e1&ression.
u The initialiDer is an invalid DUP state%ent.
A*$(% iHproper list initialiCation
In a structure3 there 7as an atte%&t to initialiDe a list o- ite%s
7ith a value or list o- values o- the 7ron. siDe.
A*$($ initialiCer HDst be a strinE or sinEle iteH
There was an attempt to initialize a structure element with something other
than a single item or string.
This error can 'e caused 'y o%ittin. 'races ^ _! around an
initialiDer.
A*$(* initialiCer HDst be a sinEle iteH
There was an attempt to initialize a structure element with something other
than a single item.
This error can 'e caused 'y o%ittin. 'races ^ _! around an
initialiDer.
A*$(, initialiCer HDst be a sinEle bUte
There 7as an atte%&t to initialiDe a structure ele%ent o- 'yte
siDe 7ith so%ethin. other than a sin.le 'yte.
A*$(- iHproper Dse oG list initialiCer
The asse%'ler did not e1&ect an o&enin. 'race ^! at this
&oint.
A*$(# iHproper literal initialiCation
A literal structure initializer was not properly delimited.
This error can 'e caused 'y %issin. an.le 'rac0ets 5 6! or
'races ^ _! around an initialiDer or 'y e1tra characters a-ter
the end o- an initialiDer.
A*$() eOtra cVaracters in literal initialiCation
A literal structure initializer was not properly delimited.
Cne o- the -ollo7in. %ay have occurred=
u There 7ere %issin. or %is%atched an.le 'rac0ets 5 6! or
'races ^ _! around an initialiDer.
u There 7ere e1tra characters a-ter the end o- an initialiDer.
u There 7as a synta1 error in the structure initialiDation.
A*$(+ HDst Dse SoatinE point initialiCer
A variable declared with the REAL4, REAL8, and REAL10 directives must
be initialized with a floating-point number or a question mark (?).
This error can 'e caused 'y .ivin. an initialiDer in inte.er -or%
such as 1K! instead o- in 6oatin.$&oint -or% 1K.<!.
A*$(( cannot Dse .E7IT Gor OXO* WitV .(%()
The INVO0E .enerated 'y the .E7IT state%ent under
OXO* re,uires the .$() or hi.her! directive3 since it %ust
'e a'le to use the PU& instruction to &ush i%%ediates
directly.
A*$(T inFaliB coHbination WitV seEHent aliEnHent
The ali.n%ent s&eci"ed 'y the ALIGN or EVEN directive 7as
.reater than the current se.%ent ali.n%ent as s&eci"ed 'y
the EGMENT directive.
A*$T% INVO0E reYDires prototUpe Gor proceBDre
The INVOKE directive must be preceded by a PROTO statement for the
procedure being called.
Ahen usin. INVO0E 7ith an address rather than an e1&licit
&rocedure na%e3 you %ust &recede the address 7ith a &ointer
to the &rototy&e.
A*$T$ cannot inclDBe strDctDre in selG
Lou cannot re-erence a structure recursively inside its o7n
de"nition!.
A*$T* sUHbol lanEDaEe attribDte conSict
T7o declarations -or the sa%e sy%'ol have con6ictin.
lan.ua.e attri'utes such as ! and PA!AL!. The attri'utes
should 'e identical or co%&ati'le.
A*$T, nonPbeniEn !OMM reBeQnition
A variable was redefined with the COMM directive to a different language
type, distance, size, or instance count.
Multi&le !OMM de"nitions o- a varia'le %ust 'e identical.
A*$T- !OMM Fariable eOceeBs )-0
A varia'le declared 7ith the !OMM directive in a 1;$'it
se.%ent 7as .reater than ;?E.
A*$T# paraHeter or local cannot VaFe FoiB tUpe
The assembler attempted to create an argument or create a local without a
type.
This error can 'e caused 'y declarin. or &assin. a sy%'ol
-ollo7ed 'y a colon 7ithout s&eci-yin. a ty&e or 'y usin. a
user$de"ned ty&e de"ned as void.
A*$T) cannot Dse TINY HoBel WitV OXO*
A .MODEL state%ent s&eci"ed the TINY %e%ory %odel and
the OXO* o&eratin. syste%. The tiny %e%ory %odel is not
allo7ed under C#*2.
A*$T+ eOpression siCe HDst be ,*Pbits
There 7as an atte%&t to use the 1;$'it e1&ression evaluator
in a 32$'it se.%ent. In a 32$'it se.%ent UE,* or 1LAT!3
you cannot use the de-ault 1;$'it e1&ression evaluator
OPTION E7P/$)!.
A*$T( .E7IT Boes not WorI WitV ,*Pbit seEHents
The .E7IT directive cannot 'e used in a 32$'it se.%entN it is
valid only 7hen .eneratin. 1;$'it code.
A*$TT .TA/TUP Boes not WorI WitV ,*Pbit seEHents
The .TA/TUP directive cannot 'e used in a 32$'it se.%entN
it is valid only 7hen .eneratin. 1;$'it code.
A**%% O/G BirectiFe not alloWeB in Dnions
The ORG directive is not valid inside a UNION definition.
Lou can use the O/G directive inside T/U!T de"nitions3 'ut
it is %eanin.less inside a UNION.
A**%$ scope state cannot be cVanEeB
Both OPTION SCOPED and OPTION NOSCOPED statements occurred in
a module. You cannot switch scoping behavior in a module.
This error %ay 'e caused 'y an OPTION !OPED or OPTION
NO!OPED state%ent in an include "le.
A**%* illeEal Dse oG seEHent reEister
Lou cannot use se.%ent overrides -or the +# or ># se.%ent
re.isters 7hen .eneratin. 6oatin.$&oint e%ulation
instructions 7ith the *+Pi co%%and$line o&tion or OPTION
EMULATO/.
A**%, cannot Beclare scopeB coBe label as PU"LI!
A code la'el de"ned 7ith the Zla'el=[ synta1 7as declared
PU"LI!. 5se the Zla'el==[ synta13 the LA"EL directive3 or
OPTION NO!OPED to eli%inate this error.
A**%- .M1LOAT BirectiFe is obsolete : iEnoreB
The Microso-t 2inary +or%at is no lon.er su&&orted. Lou
should convert your code to the IEEE nu%eric standard3 7hich
is used in the K<1KM$series co&rocessors.
A**%# E! instrDction is obsolete : iEnoreB
The E! Esca&e! instruction is no lon.er su&&orted. All
nu%eric co&rocessor instructions are no7 su&&orted directly
'y the asse%'ler.
A**%) HissinE operator in eOpression
An expression cannot be evaluated because it is missing an operator. This
error message may also be a side-effect of a preceding program error.
The -ollo7in. line 7ill .enerate this error=
value1 I 1 T 2 ! 3
A**%+ HissinE riEVt parentVesis in eOpression
An expression cannot be evaluated because it is missing a right (closing)
parenthesis. This error message may also be a side-effect of a preceding
program error.
The -ollo7in. line 7ill .enerate this error=
value1 I 1 T 2 ! : 3
A**%( HissinE leGt parentVesis in eOpression
An expression cannot be evaluated because it is missing a left (opening)
parenthesis. This error message may also be a side-effect of a preceding
program error.
The -ollo7in. line 7ill .enerate this error=
value1 I 1 T 2 ! : 3 ! !
A**%T reGerence to GorWarB Hacro reBeQnition
A %acro cannot 'e accessed 'ecause it has not 'een yet
de"ned.
Move the %acro de"nition ahead o- all re-erences to the
%acro.
A*T%$ cannot rDn ML.E7E
The MASM driver could not spawn Ml.exe.
Cne o- the -ollo7in. %ay have occurred=
u Ml.e1e 7as not in the &ath.
u The REA9 attri'ute 7as not set on Ml.e1e.
u There 7as not enou.h %e%ory.
ML /arnin*s
A-%%% cannot HoBiGU /EADONLY seEHent
An atte%&t 7as %ade to %odi-y an o&erand in a se.%ent
%ar0ed 7ith the /EADONLY attri'ute.
A-%%* nonPDniYDe T/U!TJUNION QelB DseB WitVoDt
YDaliQcation
A STRUCT or UNION field can be referenced without qualification only if it
has a unique identifier.
This con6ict can 'e resolved either 'y rena%in. one o- the
structure "elds to %a0e it uni,ue or 'y -ully s&eci-yin. 'oth
"eld re-erences.
The NONUNI'UE 0ey7ord re,uires that all re-erences to the
ele%ents o- a T/U!T or UNION 'e -ully s&eci"ed.
A-%%, start aBBress on END BirectiFe iEnoreB WitV
.TA/TUP
2oth .TA/TUP and a &ro.ra% load address o&tional 7ith
the END directive! 7ere s&eci"ed. The address s&eci"cation
7ith the END directive 7as i.nored.
A-%%- cannot AUME !
An atte%&t 7as %ade to assu%e a value -or the C# re.ister.
C# is al7ays set to the current se.%ent or .rou&.
A-%%# DnInoWn BeGaDlt proloEDe arEDHent
An unknown argument was passed to the default prologue.
The de-ault &rolo.ue understands only the 1O/!E1/AME and
LOADD ar.u%ents.
A-%%) too HanU arEDHents in Hacro call
There 7ere %ore ar.u%ents .iven in the %acro call than there
7ere &ara%eters in the %acro de"nition.
A-%%+ option DntranslateB. BirectiFe reYDireB : option
There is no ML co%%and$line e,uivalent -or the .iven MA#M
o&tion. The desired 'ehavior can 'e o'tained 'y usin. a
directive in the source "le.
Option DirectiFe
*A .ALPHA
*P CPTICN REA9CNLL
*# .#E/
A-%%( inFaliB coHHanBPline option FalDe. BeGaDlt is DseB :
option
The value s&eci"ed 7ith the .iven o&tion 7as not valid. The
o&tion 7as i.nored3 and the de-ault 7as assu%ed.
A-%%T insD]cient HeHorU Gor JEP : JEP iEnoreB
There is not enou.h %e%ory to .enerate a "rst$&ass listin..
A-%$% eOpecteB ?6? on teOt literal
A %acro 7as called 7ith a te1t literal ar.u%ent that 7as
%issin. a closin. an.le 'rac0et.
A-%$$ HDltiple .MODEL BirectiFes GoDnB : .MODEL iEnoreB
More than one .MODEL directive 7as -ound in the current
%odule. Cnly the "rst .MODEL state%ent is used.
A-%$* line nDHber inGorHation Gor seEHent WitVoDt class
?!ODE?
There were instructions in a segment that did not have a class name that ends
with CODE. The assembler did not generate CodeView information for
these instructions.
CodeJie7 cannot &rocess %odules 7ith code in se.%ents 7ith
class na%es that do not end 7ith ZCC9E.[
A-%$, instrDctions anB initialiCeB Bata not sDpporteB in AT
seEHents
An instruction or initialized data was found in a segment defined with the AT
attribute. The code or data will not be loaded at run time.
9ata in AT se.%ents %ust 'e declared 7ith the 4 initialiDer.
A-T$% cannot open Qle: flename
The given filename could not be in the current path.
Ma0e sure that flename 7as co&ied -ro% the distri'ution dis0s
and is in the current &ath.
A#%%% AA: label BeQneB bDt not reGerenceB
A jump target was defined with the @@: label, but the target was not used by
a jump instruction.
Cne co%%on cause o- this error is insertion o- an e1tra AA:
la'el 'et7een the Fu%& and the AA: la'el that the Fu%&
ori.inally re-erred to.
A#%%$ eOpression eOpecteB. assDHe FalDe %
There 7as an I13 ELEI13 I1E3 I1NE3 ELEI1E3 or ELEI1NE
directive 7ithout an e1&ression to evaluate. The asse%'ler
assu%es a < -or the co%&arison e1&ression.
A#%%* eOternBeG preFioDslU assDHeB to be eOternal
The OPATT/ or .TYPE o&erator 7as a&&lied to a sy%'ol a-ter
the sy%'ol 7as used in an E7TE/NDE1 state%ent 'ut 'e-ore
it 7as declared. These o&erators 7ere used on a line 7here
the asse%'ler assu%ed that the sy%'ol 7as e1ternal.
A#%%, lenEtV oG sUHbol preFioDslU assDHeB to be BiZerent
The LENGT&O13 LENGT&3 I8EO13 or I8E o&erator 7as
a&&lied to a sy%'ol a-ter the sy%'ol 7as used in an
E7TE/NDE1 state%ent 'ut 'e-ore it 7as declared. These
o&erators 7ere used on a line 7here the asse%'ler assu%ed
that the sy%'ol had a diHerent len.th and siDe.
A#%%- sUHbol preFioDslU assDHeB to not be in a EroDp
A sy%'ol 7as used in an E7TE/NDE1 state%ent outside o- a
se.%ent and then 7as declared inside a se.%ent.
A#%%# tUpes are BiZerent
The ty&e .iven 'y an INVO0E state%ent diHered -ro% that
.iven in the &rocedure &rototy&e. The asse%'ler &er-or%ed
the a&&ro&riate ty&e conversion.
A)%%$ no retDrn GroH proceBDre
A P/O! state%ent .enerated a &rolo.ue3 'ut there 7as no
/ET or I/ET instruction -ound inside the &rocedure 'loc0.
A)%%, conBitional [DHp lenEtVeneB
A conditional jump was encoded as a reverse conditional jump around a near
unconditional jump.
Lou %ay 'e a'le to rearran.e code to avoid the lon.er -or%.
A)%%- proceBDre arEDHent or local not reGerenceB
You passed a procedure argument or created a variable with the LOCAL
directive that was not used in the procedure body.
5nnecessary &ara%eters and locals 7aste code and stac0
s&ace.
A)%%# eOpression conBition HaU be passPBepenBent
Under the /Zm command-line option or the OPTION M510 directive, the
value of an expression changed between passes.
This error %essa.e %ay indicate that the code is &ass$
de&endent and %ust 'e re7ritten.

También podría gustarte