in some source, i see any jump or call use like this :
cmp xxx, xxx
jmp @ -----> tell me about it
cmp xxx, xxx
je @@b ----> tell me about it
or
call @
any could tell me !!!
thanks
cmp xxx, xxx
jmp @ -----> tell me about it
cmp xxx, xxx
je @@b ----> tell me about it
or
call @
any could tell me !!!
thanks
The @F and @B are used to reference an anonymous label, an anonymous label is identified by @@:. In some parts of your code it can be cumbersome to have named labels for simple forward or backward jmp commands, @F references the next occurance of @@: and @B references the previous one:
jmp @F ; jumps ahead to the next @@: label
nop
nop
@@: ; both of the jmp calls end up here
nop
nop
jmp @B ; jumps back to the previous @@: label
jmp @F ; jumps ahead to the next @@: label
nop
nop
@@: ; both of the jmp calls end up here
nop
nop
jmp @B ; jumps back to the previous @@: label
Exactly right.
jmp @F will jump FORWARDS to the FIRST INSTANCE of a @@: label.
jmp @B will jump BACKWARDS to the FIRST INSTANCE of a @@: label.
therefore you may wish to think of them as
jmp @F= jmp to NEXT @@:
jmp @B=jmp to PREV @@:
jmp @F will jump FORWARDS to the FIRST INSTANCE of a @@: label.
jmp @B will jump BACKWARDS to the FIRST INSTANCE of a @@: label.
therefore you may wish to think of them as
jmp @F= jmp to NEXT @@:
jmp @B=jmp to PREV @@:
@@:
....
....
....
@@:
......
......
jmp @B
jmp @B
how can i do this one using @@ @F @B ???? (i means nested loops)
....
....
....
@@:
......
......
jmp @B
jmp @B
how can i do this one using @@ @F @B ???? (i means nested loops)
Afternoon, AceEmbler.
You can't.
Usually, you'd use @f to jump *out* of a loop, and @b to loop *back*.
Cheers,
Scronty
You can't.
Usually, you'd use @f to jump *out* of a loop, and @b to loop *back*.
Cheers,
Scronty