News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

What means "@F"

Started by Banana.Joe, March 15, 2007, 03:24:09 PM

Previous topic - Next topic

Banana.Joe

Hallo,

i'm a assembler newbie, but i have to customize an older code.

in the meantime i can understand a lot of the code, but somtimes there is a jump like this in the Code:

jz   @F

waht means @F?? I can not find a target named "@:" in all of the files. Any ideas?

thank you

Joe

stanhebben

@F means 'jump to next @@ label'

In the code, there will be an @@ label somewhere.

Likewise, @B means 'jump to last @@ label', if you encounter any of those.

Banana.Joe

Ok,

thank you. Yeah there is a @@ Label.

Thank you

guyenMasm

Quote from: Stan Hebben on March 15, 2007, 03:42:53 PM
@F means 'jump to next @@ label'

In the code, there will be an @@ label somewhere.

Likewise, @B means 'jump to last @@ label', if you encounter any of those.

Not exactly, if there was a regular label between @f and @@: or @b and @@: then @f / @b will jump to regular label not @@.

so @f or @b will jump to nearest label.

japheth

> Not exactly, if there was a regular label between @f and @@: or @b and @@: then @f / @b will jump to regular label not @@.

Not with the version of MASM which I use (6.15). Here indeed @F/@B always jump to the @@ label, regardless if there is another label in between.

guyenMasm

hmm ok, I haven't tested it yet, but my rule of thumb :U : dont put regular label between @f/@b and @@:    :P

ninjarider

for the past two years in which i have programmed 16-bit. @f and @b will only jump to a @@: label. for some reason ml changes the @@: label to a random label that it creates and refrences the @f, and @b to them.

MichaelW

Quotefor some reason ml changes the @@: label to a random label that it creates and refrences the @f, and @b to them.
Those "random" labels are not random, they are unique names that are generated for this purpose. They must be unique so they will not conflict with other names in the source.
eschew obfuscation

hutch--

Over a long period the term I have heard applied to the masm label "@@:" has always been "anonymous label" and the usage of such a label system in conjunction with the two operators "@F @B" is designed to reduce the need for endlessly inventing new lable names when often the context does not require a recognisable name. For anyone who has bothered to look at a masm generated listing, each @@: label is replaced with an incremented number string "00001:  00002: etc ...." which garantees they are unique.

Since masm 6.00 in 1990 every version of ML.EXE conforms to this system and it has nothing to do with the placement of other named labels. Its just that less experienced programmers can sometimes get into trouble by not properly understanding how anonymous labels work.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php