home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
program
/
compiler
/
fasbin21
/
fas_src
/
as8096
/
as8096.doc
< prev
next >
Wrap
Text File
|
1990-12-11
|
15KB
|
600 lines
.HM A 1 1 1 1 1 1
.H 1 "Appendix for as8096 Frankenstein Assembler"
.H 2 "Pseudo Operations"
.H 3 "Standard Pseudo Operation Mnemonics"
.VL 40 5 1
.LI "End"
END
.LI "File Inclusion"
INCL
INCLUDE
.LI "If"
IF
.LI "Else"
ELSE
.LI "End If"
ENDI
.LI "Equate"
EQU
.LI "Set"
SET
.LI "Org"
ORG
.LI "Reserve Memory"
DSB
RESERVE
RMB
.LI "Define Byte Data"
BYTE
DCB
FCB
.LI "Define String Data"
FCC
STRING
.LI "Define Character Set Translation"
CHARSET
.LI "Define Character Value"
CHARDEF
CHD
.LI "Use Character Translation"
CHARUSE
.LE
.H 3 "Machine Dependent Pseudo Operations"
.H 4 "Define Word Data, Aligned"
.DS I N
[Label] WORD expression [, expression] ...
[Label] FDB expression [, expression] ...
[Label] DCW expression [, expression] ...
.DE
.P
The define word statement generates a two byte integer for each expression
in the expression list.
There can be up to 128 expressions on a line, more than the line length will
allow.
The location counter is adjusted by skipping bytes to make the first
location address divisible by 2.
The generated constants are in byte reversed order, with the low order
byte first, followed by the high order byte.
The optional label is set to the first location of this area.
.H 4 "Define Long Word Data, Aligned"
.DS I N
[Label] LONG expression [, expression] ...
[Label] DCL expression [, expression] ...
.DE
.P
The define long word statement generates a four byte integer
for each expression in the expression list.
There can be up to 128 expressions on a line, more than the line length will
allow.
The location counter is adjusted by skipping bytes to make the first
location address divisible by 4.
The generated constants are in byte reversed order, with the low order
byte first, followed by the high order bytes.
The optional label is set to the first location of this area.
.H 4 "Reserve Memory, Word Aligned"
.DS I N
[Label] DSW expression
.DE
.P
This statement moves the location counter forward by
the number of bytes specified in the expression.
The location counter is adjusted by skipping bytes to make the
first location address divisible by 2.
The label is set to the first location of this area.
.H 4 "Reserve Memory, Long Word Aligned"
.DS I N
[Label] DSL expression
.DE
.P
This statement moves the location counter forward by
the number of long words specified in the expression.
The location counter is adjusted by skipping bytes to make
the first location address divisible by 4.
The label is set to the first location of this area.
.H 4 "Instruction Set Selection"
.DS I N
CPU string
.DE
The instruction set can be specified in the source file with the CPU
pseudooperation.
The string, delimited by quotes or apostrophes, is scanned for a
substring which selects which instruction set is used.
When the program is invoked, this operation is performed on the name of
the program, then the -p optional arguement, if any, and then any CPU
statements.
The last one selects which subset of the instructions the assembler will
accept.
The instruction set can be changed at any place in the source file.
.VL 30 5 1
.LI "Instruction Set"
Substrings
.LI "80c196"
19
.LI "8096"
9
.LE
.H 2 "Instructions"
.H 3 "Instruction List"
.TS H
;
l l l.
Opcode Syntax Selection Criteria
.sp
.TH
.sp
ADD expr ',' '#' expr
ADD expr ',' '[' expr ']'
ADD expr ',' expr ',' '#' expr
ADD expr ',' expr ',' '[' expr ']'
ADD expr ',' expr ',' expr '[' expr ']' DIRECT
ADD expr ',' expr ',' expr '[' expr ']' EXTENDED
ADD expr ',' expr ',' expr DIRECT
ADD expr ',' expr ',' expr EXTENDED
ADD expr ',' expr '[' expr ']' DIRECT
ADD expr ',' expr '[' expr ']' EXTENDED
ADD expr ',' expr DIRECT
ADD expr ',' expr EXTENDED
.sp
ADDB expr ',' '#' expr
ADDB expr ',' '[' expr ']'
ADDB expr ',' expr ',' '#' expr
ADDB expr ',' expr ',' '[' expr ']'
ADDB expr ',' expr ',' expr '[' expr ']' DIRECT
ADDB expr ',' expr ',' expr '[' expr ']' EXTENDED
ADDB expr ',' expr ',' expr DIRECT
ADDB expr ',' expr ',' expr EXTENDED
ADDB expr ',' expr '[' expr ']' DIRECT
ADDB expr ',' expr '[' expr ']' EXTENDED
ADDB expr ',' expr DIRECT
ADDB expr ',' expr EXTENDED
.sp
ADDC expr ',' '#' expr
ADDC expr ',' '[' expr ']'
ADDC expr ',' expr '[' expr ']' DIRECT
ADDC expr ',' expr '[' expr ']' EXTENDED
ADDC expr ',' expr DIRECT
ADDC expr ',' expr EXTENDED
.sp
ADDCB expr ',' '#' expr
ADDCB expr ',' '[' expr ']'
ADDCB expr ',' expr '[' expr ']' DIRECT
ADDCB expr ',' expr '[' expr ']' EXTENDED
ADDCB expr ',' expr DIRECT
ADDCB expr ',' expr EXTENDED
.sp
AND expr ',' '#' expr
AND expr ',' '[' expr ']'
AND expr ',' expr ',' '#' expr
AND expr ',' expr ',' '[' expr ']'
AND expr ',' expr ',' expr '[' expr ']' DIRECT
AND expr ',' expr ',' expr '[' expr ']' EXTENDED
AND expr ',' expr ',' expr DIRECT
AND expr ',' expr ',' expr EXTENDED
AND expr ',' expr '[' expr ']' DIRECT
AND expr ',' expr '[' expr ']' EXTENDED
AND expr ',' expr DIRECT
AND expr ',' expr EXTENDED
.sp
ANDB expr ',' '#' expr
ANDB expr ',' '[' expr ']'
ANDB expr ',' expr ',' '#' expr
ANDB expr ',' expr ',' '[' expr ']'
ANDB expr ',' expr ',' expr '[' expr ']' DIRECT
ANDB expr ',' expr ',' expr '[' expr ']' EXTENDED
ANDB expr ',' expr ',' expr DIRECT
ANDB expr ',' expr ',' expr EXTENDED
ANDB expr ',' expr '[' expr ']' DIRECT
ANDB expr ',' expr '[' expr ']' EXTENDED
ANDB expr ',' expr DIRECT
ANDB expr ',' expr EXTENDED
.sp
BMOV expr ',' expr CPU196
.sp
BR '[' expr ']'
.sp
CLR expr
.sp
CLRB expr
.sp
CLRC
.sp
CLRVT
.sp
CMP expr ',' '#' expr
CMP expr ',' '[' expr ']'
CMP expr ',' expr '[' expr ']' DIRECT
CMP expr ',' expr '[' expr ']' EXTENDED
CMP expr ',' expr DIRECT
CMP expr ',' expr EXTENDED
.sp
CMPB expr ',' '#' expr
CMPB expr ',' '[' expr ']'
CMPB expr ',' expr '[' expr ']' DIRECT
CMPB expr ',' expr '[' expr ']' EXTENDED
CMPB expr ',' expr DIRECT
CMPB expr ',' expr EXTENDED
.sp
CMPL expr ',' expr CPU196
.sp
DEC expr
.sp
DECB expr
.sp
DI
.sp
DIV expr ',' '#' expr
DIV expr ',' '[' expr ']'
DIV expr ',' expr '[' expr ']' DIRECT
DIV expr ',' expr '[' expr ']' EXTENDED
DIV expr ',' expr DIRECT
DIV expr ',' expr EXTENDED
.sp
DIVB expr ',' '#' expr
DIVB expr ',' '[' expr ']'
DIVB expr ',' expr '[' expr ']' DIRECT
DIVB expr ',' expr '[' expr ']' EXTENDED
DIVB expr ',' expr DIRECT
DIVB expr ',' expr EXTENDED
.sp
DIVU expr ',' '#' expr
DIVU expr ',' '[' expr ']'
DIVU expr ',' expr '[' expr ']' DIRECT
DIVU expr ',' expr '[' expr ']' EXTENDED
DIVU expr ',' expr DIRECT
DIVU expr ',' expr EXTENDED
.sp
DIVUB expr ',' '#' expr
DIVUB expr ',' '[' expr ']'
DIVUB expr ',' expr '[' expr ']' DIRECT
DIVUB expr ',' expr '[' expr ']' EXTENDED
DIVUB expr ',' expr DIRECT
DIVUB expr ',' expr EXTENDED
.sp
DJNZ expr ',' expr
.sp
DJNZW expr ',' expr CPU196
.sp
EI
.sp
EXT expr
.sp
EXTB expr
.sp
IDLPD '#' expr CPU196
.sp
INC expr
.sp
INCB expr
.sp
JBC expr ',' expr ',' expr
.sp
JBS expr ',' expr ',' expr
.sp
JC expr
.sp
JE expr
.sp
JGE expr
.sp
JGT expr
.sp
JH expr
.sp
JLE expr
.sp
JLT expr
.sp
JNC expr
.sp
JNE expr
.sp
JNH expr
.sp
JNST expr
.sp
JNV expr
.sp
JNVT expr
.sp
JST expr
.sp
JV expr
.sp
JVT expr
.sp
LCALL expr
.sp
LD expr ',' '#' expr
LD expr ',' '[' expr ']'
LD expr ',' expr '[' expr ']' DIRECT
LD expr ',' expr '[' expr ']' EXTENDED
LD expr ',' expr DIRECT
LD expr ',' expr EXTENDED
.sp
LDB expr ',' '#' expr
LDB expr ',' '[' expr ']'
LDB expr ',' expr '[' expr ']' DIRECT
LDB expr ',' expr '[' expr ']' EXTENDED
LDB expr ',' expr DIRECT
LDB expr ',' expr EXTENDED
.sp
LDBSE expr ',' '#' expr
LDBSE expr ',' '[' expr ']'
LDBSE expr ',' expr '[' expr ']' DIRECT
LDBSE expr ',' expr '[' expr ']' EXTENDED
LDBSE expr ',' expr DIRECT
LDBSE expr ',' expr EXTENDED
.sp
LDBZE expr ',' '#' expr
LDBZE expr ',' '[' expr ']'
LDBZE expr ',' expr '[' expr ']' DIRECT
LDBZE expr ',' expr '[' expr ']' EXTENDED
LDBZE expr ',' expr DIRECT
LDBZE expr ',' expr EXTENDED
.sp
LJMP expr
.sp
MUL expr ',' '#' expr
MUL expr ',' '[' expr ']'
MUL expr ',' expr ',' '#' expr
MUL expr ',' expr ',' '[' expr ']'
MUL expr ',' expr ',' expr '[' expr ']' DIRECT
MUL expr ',' expr ',' expr '[' expr ']' EXTENDED
MUL expr ',' expr ',' expr DIRECT
MUL expr ',' expr ',' expr EXTENDED
MUL expr ',' expr '[' expr ']' DIRECT
MUL expr ',' expr '[' expr ']' EXTENDED
MUL expr ',' expr DIRECT
MUL expr ',' expr EXTENDED
.sp
MULB expr ',' '#' expr
MULB expr ',' '[' expr ']'
MULB expr ',' expr ',' '#' expr
MULB expr ',' expr ',' '[' expr ']'
MULB expr ',' expr ',' expr '[' expr ']' DIRECT
MULB expr ',' expr ',' expr '[' expr ']' EXTENDED
MULB expr ',' expr ',' expr DIRECT
MULB expr ',' expr ',' expr EXTENDED
MULB expr ',' expr '[' expr ']' DIRECT
MULB expr ',' expr '[' expr ']' EXTENDED
MULB expr ',' expr DIRECT
MULB expr ',' expr EXTENDED
.sp
MULU expr ',' '#' expr
MULU expr ',' '[' expr ']'
MULU expr ',' expr ',' '#' expr
MULU expr ',' expr ',' '[' expr ']'
MULU expr ',' expr ',' expr '[' expr ']' DIRECT
MULU expr ',' expr ',' expr '[' expr ']' EXTENDED
MULU expr ',' expr ',' expr DIRECT
MULU expr ',' expr ',' expr EXTENDED
MULU expr ',' expr '[' expr ']' DIRECT
MULU expr ',' expr '[' expr ']' EXTENDED
MULU expr ',' expr DIRECT
MULU expr ',' expr EXTENDED
.sp
MULUB expr ',' '#' expr
MULUB expr ',' '[' expr ']'
MULUB expr ',' expr ',' '#' expr
MULUB expr ',' expr ',' '[' expr ']'
MULUB expr ',' expr ',' expr '[' expr ']' DIRECT
MULUB expr ',' expr ',' expr '[' expr ']' EXTENDED
MULUB expr ',' expr ',' expr DIRECT
MULUB expr ',' expr ',' expr EXTENDED
MULUB expr ',' expr '[' expr ']' DIRECT
MULUB expr ',' expr '[' expr ']' EXTENDED
MULUB expr ',' expr DIRECT
MULUB expr ',' expr EXTENDED
.sp
NEG expr
.sp
NEGB expr
.sp
NOP
.sp
NORML expr ',' expr
.sp
NOT expr
.sp
NOTB expr
.sp
OR expr ',' '#' expr
OR expr ',' '[' expr ']'
OR expr ',' expr '[' expr ']' DIRECT
OR expr ',' expr '[' expr ']' EXTENDED
OR expr ',' expr DIRECT
OR expr ',' expr EXTENDED
.sp
ORB expr ',' '#' expr
ORB expr ',' '[' expr ']'
ORB expr ',' expr '[' expr ']' DIRECT
ORB expr ',' expr '[' expr ']' EXTENDED
ORB expr ',' expr DIRECT
ORB expr ',' expr EXTENDED
.sp
POP '[' expr ']'
POP expr '[' expr ']' DIRECT
POP expr '[' expr ']' EXTENDED
POP expr DIRECT
POP expr EXTENDED
.sp
POPA CPU196
.sp
POPF
.sp
PUSH '#' expr
PUSH '[' expr ']'
PUSH expr '[' expr ']' DIRECT
PUSH expr '[' expr ']' EXTENDED
PUSH expr DIRECT
PUSH expr EXTENDED
.sp
PUSHA CPU196
.sp
PUSHF
.sp
RET
.sp
RST
.sp
SCALL expr
.sp
SETC
.sp
SHL expr ',' '#' expr
SHL expr ',' expr
.sp
SHLB expr ',' '#' expr
SHLB expr ',' expr
.sp
SHLL expr ',' '#' expr
SHLL expr ',' expr
.sp
SHR expr ',' '#' expr
SHR expr ',' expr
.sp
SHRA expr ',' '#' expr
SHRA expr ',' expr
.sp
SHRAB expr ',' '#' expr
SHRAB expr ',' expr
.sp
SHRAL expr ',' '#' expr
SHRAL expr ',' expr
.sp
SHRB expr ',' '#' expr
SHRB expr ',' expr
.sp
SHRL expr ',' '#' expr
SHRL expr ',' expr
.sp
SJMP expr
.sp
SKIP expr
.sp
ST expr ',' '[' expr ']'
ST expr ',' expr '[' expr ']' DIRECT
ST expr ',' expr '[' expr ']' EXTENDED
ST expr ',' expr DIRECT
ST expr ',' expr EXTENDED
.sp
STB expr ',' '[' expr ']'
STB expr ',' expr '[' expr ']' DIRECT
STB expr ',' expr '[' expr ']' EXTENDED
STB expr ',' expr DIRECT
STB expr ',' expr EXTENDED
.sp
SUB expr ',' '#' expr
SUB expr ',' '[' expr ']'
SUB expr ',' expr ',' '#' expr
SUB expr ',' expr ',' '[' expr ']'
SUB expr ',' expr ',' expr '[' expr ']' DIRECT
SUB expr ',' expr ',' expr '[' expr ']' EXTENDED
SUB expr ',' expr ',' expr DIRECT
SUB expr ',' expr ',' expr EXTENDED
SUB expr ',' expr '[' expr ']' DIRECT
SUB expr ',' expr '[' expr ']' EXTENDED
SUB expr ',' expr DIRECT
SUB expr ',' expr EXTENDED
.sp
SUBB expr ',' '#' expr
SUBB expr ',' '[' expr ']'
SUBB expr ',' expr ',' '#' expr
SUBB expr ',' expr ',' '[' expr ']'
SUBB expr ',' expr ',' expr '[' expr ']' DIRECT
SUBB expr ',' expr ',' expr '[' expr ']' EXTENDED
SUBB expr ',' expr ',' expr DIRECT
SUBB expr ',' expr ',' expr EXTENDED
SUBB expr ',' expr '[' expr ']' DIRECT
SUBB expr ',' expr '[' expr ']' EXTENDED
SUBB expr ',' expr DIRECT
SUBB expr ',' expr EXTENDED
.sp
SUBC expr ',' '#' expr
SUBC expr ',' '[' expr ']'
SUBC expr ',' expr '[' expr ']' DIRECT
SUBC expr ',' expr '[' expr ']' EXTENDED
SUBC expr ',' expr DIRECT
SUBC expr ',' expr EXTENDED
.sp
SUBCB expr ',' '#' expr
SUBCB expr ',' '[' expr ']'
SUBCB expr ',' expr '[' expr ']' DIRECT
SUBCB expr ',' expr '[' expr ']' EXTENDED
SUBCB expr ',' expr DIRECT
SUBCB expr ',' expr EXTENDED
.sp
XOR expr ',' '#' expr
XOR expr ',' '[' expr ']'
XOR expr ',' expr '[' expr ']' DIRECT
XOR expr ',' expr '[' expr ']' EXTENDED
XOR expr ',' expr DIRECT
XOR expr ',' expr EXTENDED
.sp
XORB expr ',' '#' expr
XORB expr ',' '[' expr ']'
XORB expr ',' expr '[' expr ']' DIRECT
XORB expr ',' expr '[' expr ']' EXTENDED
XORB expr ',' expr DIRECT
XORB expr ',' expr EXTENDED
.TE
.H 3 "Selection Criteria Keywords"
.VL 25 5
.LI DIRECT
The instruction will be generated with a short form if the last operand
will fit in one byte, and is defined when the instruction is processed in
the first pass.
.LI EXTENDED
The instruction can be generated with a long form.
.LI CPU196
The instruction is implemented only in the 80c196.
.LE
.H 3 "Apostrophes"
The apostrophes in the syntax field are a notation used for the
parser generator and are not put in the assembler source statement.
.H 2 "Notes"
.H 3 "Data Alignment"
In the second pass, data address are checked for alignment.
If the operand field is not divisible by 2 for word references, or
by 4 for long word references, the error message
"expression fails validity test" occurs.
.H 3 "Generic Jumps"
The assembler requires that the length of an instruction
be able to be determined at the first pass, so generalized generic jumps
could not be implemented.
.H 3 "Reserved Symbols"
.H 4 "Standard Reserved Symbols"
AND
DEFINED
EQ
GE
GT
HIGH
LE
LOW
LT
MOD
NE
NOT
OR
SHL
SHR
XOR
and
defined
eq
ge
gt
high
le
low
lt
mod
ne
not
or
shl
shr
xor
.TC 1 1 7