Any label consisting of one letter followed by one or more digits is local and can be redefined as needed, with each definition replacing the prior. The manual recommends using L1 through L9 for normal code and M1 through M9 in macros. Branches to local labels are assumed to be backward, but a forward branch can be specified by prefixing the label reference with the greater than symbol (e.g.,>L2).
Numbers starting with a zero are hexadecimal, such as 00FF, instead of using a prefix such as "0x" or "$". A trailing "K" indicates kibibytes.7 16K is the same as 16*1024 or 16384.
Multiple registers can be pushed or popped on the same source line. push eax, edx, ebp generates one instruction for each of the three operands.
There's shorthand for conditionally executing a single instruction. if z mov ax,bx outputs two instructions: a conditional branch followed by the move.
If ret is specified as the label for a conditional branch, it automatically targets a return instruction within the 8-bit branch range (e.g., jz ret).
Macros use a different syntax than contemporaneous assemblers.
The assembler was designed to use particular instruction encodings which are functionally equivalent, but together create a fingerprint that's embedded in the executable file. This is mentioned in the legal terms section of the manual. The fingerprint makes it possible to tell if code was assembled with A86 and also to distinguish between registered and unregistered versions of the assembler. This analysis requires access to the source code.8
Isaacson, Eric (2008). "A86/A386 assembler and D86/D386 debugger". Archived from the original on 2 July 2008. Retrieved 2008-07-02. http://eji.com/a86/ ↩
Randall Hyde. "Which Assembler is the Best?". Archived from the original on 15 May 2008. Retrieved 2008-05-18. https://web.archive.org/web/20080515212630/http://webster.cs.ucr.edu/AsmTools/WhichAsm.html ↩
Isaacson, Eric (2006). "A86/A386 and D86/D386 features". http://eji.com/a86/features.htm#FeaturesA86 ↩
Isaacson, Eric (2006). "A386 and Win32 Programming". http://www.eji.com/a86/aw.htm ↩
Hague, James (July 20, 2008). "Kilobyte Constants, a Simple and Beautiful Idea that Hasn't Caught On". Programming in the 21st Century. https://prog21.dadgum.com/32.html ↩
El-Khalil, Rakan; Keromyti, Angelos D. (2004). "Hydan: Hiding Information in Program Binaries" (PDF). In Lopez, Javier; Qing, Sihan; Okamoto, Eiji (eds.). Information and communications security: 6th International Conference, ICICS 2004, Malaga, Spain, October 27–29, 2004 : Proceedings. Lecture Notes in Computer Science. Vol. 3269. Springer. p. 190. ISBN 3-540-23563-9. 3-540-23563-9 ↩