Avatars_System_Assembler_386 Code
Brought to you by:
rombios
All source related to ASA386 is being placed in the PUBLIC DOMAIN now compiles under Turbo C++ 3.0 and GCC 2.95 name: ASA386 Avatar's System Assembler author: Samuel Igwe description: The second incarnation of my system assembler. Designed and written to allow me to assemble kernel asm code. Supports 8086 - 80386 instructions and subsets of the memory addressing formats. Operand size overrides are allowed, Address size overrides are FORBIDDEN. pseudoops: PMODE =generate 32 bit code RMODE =generate 16 bit code DB =define byte DW =define word DD =define dword ALIGN =align segment to argument offset EQU =equate label to value RADIX =set current number base SEGMENT =set current segment (CODE|DATA|STACK|BSS) segments: CODE =read/only segment in PMODE DATA =all data STACK =allocated at load time, no is generated BSS =blank static storage. allocated at load time immediately following the DATA segment. the DATA segment is extended to accomodate the size of the BSS syntax: compatible to TASM (borlands turbo assembler). db 20dup(0): creates 20 bytes of value 0 db 0[20]: same as above any symbols referenced in a pseudoop instruction must have already been defined and assigned a value. forward references are only valid with opcodes. string values can be used as constants. for example: mov al,'o' mov eax,"MODE" labels: local labels begin with the "@" prefix. local labels are only valid until the next declaration of a global label all global labels must begin with a letter (upper or lower case) outputs: raw: .bin aef: .aef (avatar executable format) see output.h