i've got a problem with x86 assembly instructions..
I'm trying to compile an ASM file using Borland TASM 5.0 using command

tasm32 /z /m /ml MyFile.asm

However, there is an instruction in that ASM file - SUB ECX, FFFFFF88
which the assembler declares as -
Undefined Symbol : FFFFFF88

It happens even if i add the "h" to it i.e . SUB ECX, FFFFFF88H

The strange thing is, if i change highest order hex no. (F) to something like 1FFFFF88 or 2FFFFF88, it compiles perfectly..

What could be the reason here? The value shouldnt be out of range since it is a 32 bit number

6 Years
Discussion Span
Last Post by coffeeuncle

Try adding a 0 in front of your hex number. it cannot start with a letter

Yes exactly. If compiler find a letter it think of a label named FFFFFF88.

The H at the end define only how to interpret a numeric value.
For example mov ax,10 is different to mov ax,10h.
If tasm detects a value through leading "0" it should automatically interpret as hex but better style is to declar hex values ax FFFFFF88h or 0xFFFFFF88.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.