mirror of https://github.com/wwarthen/RomWBW.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
393 lines
18 KiB
393 lines
18 KiB
"TASM 8096 Assembler."
|
|
/****************************************************************************
|
|
/* $Id: tasm96.tab 1.5 1997/09/28 22:14:30 toma Exp $
|
|
/****************************************************************************
|
|
;* This is the instruction set definition table
|
|
;* for the 8096 version of TASM.
|
|
;* Thomas N. Anderson, Speech Technology Incorporated
|
|
;*
|
|
;* See TASM manual for info on table structure.
|
|
;*
|
|
;*INSTR ARGS OPCODE BYTES MOD CLASS SHIFT MASK
|
|
;*-------------------------------------------*
|
|
; Revisions:
|
|
; Added I7 rule for single arg direct/far (PUSH/POP)
|
|
; Changed ADDB *,*,*[*] entry from rule I1 to I6.
|
|
;
|
|
; Generate opcodes high byte first/
|
|
.MSFIRST
|
|
.NOARGSHIFT
|
|
;
|
|
; Note:
|
|
; The I1 rule uses ARGVAL for arg validation. If the combined
|
|
; args AND ARGVAL is not equal to the combined args then an
|
|
; error message is generated.
|
|
;
|
|
; The I1 rule also uses ARGOR. The value of that mask is OR'd
|
|
; with the first byte of the args.
|
|
;
|
|
; ARGOR
|
|
; BYTES CLASS |
|
|
; | | |
|
|
;INST ARGS OP v RULE v v ARGVAL
|
|
;-----------------------------------------;
|
|
;OK ADD
|
|
ADD *,*,[*]+ 46 4 I1 1 01 00FeFeFe ;
|
|
ADD *,*,[*] 46 4 I1 1 00 00FeFeFe ;
|
|
ADD *,*,*[*] 47 6 I6 1 00 00FeFeFe ;
|
|
ADD *,*,#* 45 5 I1 1 00 FeFeFFFF ;
|
|
ADD *,[*]+ 66 3 I1 1 01 0000FFFe ; 1st arg must be even, make odd
|
|
ADD *,[*] 66 3 I1 1 00 0000FFFe ; 1st arg must be even
|
|
ADD *,*[*] 67 5 I6 1 00 00FFFFFF ;
|
|
ADD *,*,* 4701 6 I3 1 00 0000FeFe ; 3rd arg may be far
|
|
ADD *,#* 65 4 I1 1 00 00FeFFFF ; 1st arg must be even
|
|
ADD *,* 6701 5 I2 1 00 0000FeFe ; 2nd arg may be far
|
|
|
|
;OK ADDB
|
|
ADDB *,*,[*]+ 56 4 I1 1 01 00000000 ; no validation yet
|
|
ADDB *,*,[*] 56 4 I1 1 00 00000000 ; no validation yet
|
|
ADDB *,*,*[*] 57 6 I6 1 00 00000000 ; no validation yet
|
|
ADDB *,*,#* 55 4 I1 1 00 00000000 ; no validation yet
|
|
ADDB *,[*]+ 76 3 I1 1 01 0000FFFe ; 1st arg must be even, make odd
|
|
ADDB *,[*] 76 3 I1 1 00 0000FFFe ; 1st arg must be even
|
|
ADDB *,*[*] 77 5 I6 1 00 00FeFFFe ; 1st,3rd must be even
|
|
ADDB *,*,* 5701 6 I3 1 00 00000000 ; 3rd arg may be far
|
|
ADDB *,#* 75 3 I1 1 00 00FFFFFF ; odd args ok for byte operations
|
|
ADDB *,* 7701 5 I2 1 00 00000000 ; 2nd arg may be far
|
|
|
|
; No three arg forms for ADDC or ADDCB
|
|
ADDC *,[*]+ A6 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
ADDC *,[*] A6 3 I1 1 00 0000FFFe ;1st arg must be even
|
|
ADDC *,*[*] A7 5 I6 1 00 00FFFFFF ;
|
|
ADDC *,#* A5 4 I1 1 00 00FeFFFF ;1st arg must be even
|
|
ADDC *,* A701 5 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
ADDCB *,[*]+ B6 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
ADDCB *,[*] B6 3 I1 1 00 0000FFFe ;1st arg must be even
|
|
ADDCB *,*[*] B7 5 I6 1 00 00FFFFFF ;
|
|
ADDCB *,#* B5 3 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
|
ADDCB *,* B701 5 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
; OK AND
|
|
AND *,*,[*]+ 42 4 I1 1 01 00000000 ;no validation yet
|
|
AND *,*,[*] 42 4 I1 1 00 00000000 ;no validation yet
|
|
AND *,*,*[*] 43 6 I6 1 00 00000000 ;no validation yet
|
|
AND *,*,#* 41 5 I1 1 00 00000000 ;no validation yet
|
|
AND *,[*]+ 62 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
AND *,[*] 62 3 I1 1 00 0000FFFe ;1st arg must be even
|
|
AND *,*[*] 63 5 I6 1 00 00FeFFFe ;1st,3rd must be even
|
|
AND *,*,* 4301 6 I3 1 00 00000000 ;3rd arg may be far
|
|
AND *,#* 61 4 I1 1 00 00FeFFFF ;1st arg must be even
|
|
AND *,* 6301 5 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
ANDB *,*,[*]+ 52 4 I1 1 01 00000000 ;no validation yet
|
|
ANDB *,*,[*] 52 4 I1 1 00 00000000 ;no validation yet
|
|
ANDB *,*,*[*] 53 6 I6 1 00 00000000 ;no validation yet
|
|
ANDB *,*,#* 51 4 I1 1 00 00000000 ;no validation yet
|
|
ANDB *,[*]+ 72 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
ANDB *,[*] 72 3 I1 1 00 0000FFFe ;1st arg must be even
|
|
ANDB *,*[*] 73 5 I6 1 00 00FFFFFF ;
|
|
ANDB *,*,* 5301 6 I3 1 00 00000000 ;3rd arg may be far
|
|
ANDB *,#* 71 3 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
|
ANDB *,* 7301 5 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
BMOV *,* C1 3 I1 2 00 0000FcFF ;long word ptr to two words
|
|
BMOVI *,* AD 3 I1 2 00 0000FcFF ;long word ptr to two words
|
|
|
|
BR [*] E3 2 I1 1 00 00000000 ;
|
|
BR * 2000 2 I5 1 00 00000000 ; Same As SJMP
|
|
|
|
CLR * 01 2 NOP 1 00 00000000 ;
|
|
CLRB * 11 2 NOP 1 00 00000000 ;
|
|
CLRC "" F8 1 NOP 1 00 00000000 ;
|
|
CLRVT "" FC 1 NOP 1 00 00000000 ;
|
|
|
|
CMP *,[*]+ 8A 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
CMP *,[*] 8A 3 I1 1 00 0000FFFe ;1st arg must be even
|
|
CMP *,*[*] 8B 5 I6 1 00 00FFFFFF ;
|
|
CMP *,#* 89 4 I1 1 00 00FeFFFF ;1st arg must be even
|
|
CMP *,* 8B01 5 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
CMPB *,[*]+ 9A 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
CMPB *,[*] 9A 3 I1 1 00 0000FFFe ;1st arg must be even
|
|
CMPB *,*[*] 9B 5 I6 1 00 00FFFFFF ;
|
|
CMPB *,#* 99 3 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
|
CMPB *,* 9B01 5 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
CMPL *,* C5 3 I1 2 00 0000FcFc ;long align multiple of 4
|
|
|
|
DEC * 05 2 NOP 1 00 00000000 ;
|
|
DECB * 15 2 NOP 1 00 00000000 ;
|
|
DJNZ *,* E0 3 CREL 1 00 00000000 ;
|
|
DJNZW *,* E1 3 CREL 2 00 00000000 ;
|
|
|
|
DI "" FA 1 NOP 1 00 00000000 ;
|
|
|
|
DIVU *,[*]+ 8E 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
DIVU *,[*] 8E 3 I1 1 00 0000FFFe ;1st arg must be even
|
|
DIVU *,*[*] 8F 5 I6 1 00 0000FFFe ;1st arg must be even
|
|
DIVU *,#* 8D 4 I1 1 00 00FeFFFF ;1st arg must be even
|
|
DIVU *,* 8F01 5 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
DIVUB *,[*]+ 9E 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
DIVUB *,[*] 9E 3 I1 1 00 0000FFFe ;1st arg must be even
|
|
DIVUB *,*[*] 9F 5 I6 1 00 0000FFFF ;
|
|
DIVUB *,#* 9D 3 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
|
DIVUB *,* 9F01 5 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
DIV *,[*]+ FE8E 4 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
DIV *,[*] FE8E 4 I1 1 00 0000FFFe ;1st arg must be even
|
|
DIV *,*[*] FE8F 6 I6 1 00 0000FFFe ;1st arg must be even
|
|
DIV *,#* FE8D 5 I1 1 00 00FeFFFF ;1st arg must be even
|
|
DIV *,* FE8F01 6 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
DIVB *,[*]+ FE9E 4 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
DIVB *,[*] FE9E 4 I1 1 00 0000FFFe ;1st arg must be even
|
|
DIVB *,*[*] FE9F 6 I6 1 00 0000FFFF ;
|
|
DIVB *,#* FE9D 4 I1 1 00 00FFFFFF ;odd args ok for byte operations;
|
|
DIVB *,* FE9F01 6 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
DPTS "" EC 1 NOP 2 00 00000000 ;
|
|
EPTS "" ED 1 NOP 2 00 00000000 ;
|
|
|
|
EI "" FB 1 NOP 1 00 00000000 ;
|
|
|
|
EXT * 06 2 NOP 1 00 00000000 ;
|
|
EXTB * 16 2 NOP 1 00 00000000 ;
|
|
|
|
IDLPD #* F6 2 NOP 2 00 00000000 ;
|
|
|
|
INC * 07 2 NOP 1 00 00000000 ;
|
|
INCB * 17 2 NOP 1 00 00000000 ;
|
|
|
|
JC * DB 2 R1 1 00 00000000
|
|
JNC * D3 2 R1 1 00 00000000
|
|
JH * D9 2 R1 1 00 00000000
|
|
JNH * D1 2 R1 1 00 00000000
|
|
JE * DF 2 R1 1 00 00000000
|
|
JNE * D7 2 R1 1 00 00000000
|
|
JV * DD 2 R1 1 00 00000000
|
|
JNV * D5 2 R1 1 00 00000000
|
|
JGE * D6 2 R1 1 00 00000000
|
|
JLT * DE 2 R1 1 00 00000000
|
|
JVT * DC 2 R1 1 00 00000000
|
|
JNVT * D4 2 R1 1 00 00000000
|
|
JGT * D2 2 R1 1 00 00000000
|
|
JLE * DA 2 R1 1 00 00000000
|
|
JST * D8 2 R1 1 00 00000000
|
|
JNST * D0 2 R1 1 00 00000000
|
|
|
|
JBC *,*,* 30 3 I4 1 00 00000000
|
|
JBS *,*,* 38 3 I4 1 00 00000000
|
|
|
|
LJMP * E7 3 R2 1 00 00000000
|
|
LCALL * EF 3 R2 1 00 00000000
|
|
|
|
LD *,[*]+ A2 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
LD *,[*] A2 3 I1 1 00 0000FFFe ;1st arg must be even
|
|
LD *,*[*] A3 5 I6 1 00 00FFFFFF ;
|
|
LD *,#* A1 4 I1 1 00 00FFFFFF ;
|
|
LD *,* A301 5 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
LDB *,[*]+ B2 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
LDB *,[*] B2 3 I1 1 00 0000FFFe ;1st arg must be even
|
|
LDB *,*[*] B3 5 I6 1 00 00FFFFFF ;
|
|
LDB *,#* B1 3 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
|
LDB *,* B301 5 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
LDBSE *,[*]+ BE 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
LDBSE *,[*] BE 3 I1 1 00 0000FFFe ;1st arg must be even
|
|
LDBSE *,*[*] BF 5 I6 1 00 00FeFFFe ;1st,3rd must be even
|
|
LDBSE *,#* BD 3 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
|
LDBSE *,* BF01 5 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
LDBZE *,[*]+ AE 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
LDBZE *,[*] AE 3 I1 1 00 0000FFFe ;1st arg must be even
|
|
LDBZE *,*[*] AF 5 I6 1 00 00FeFFFe ;1st,3rd must be even
|
|
LDBZE *,#* AD 3 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
|
LDBZE *,* AF01 5 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
MULU *,*,[*]+ 4E 4 I1 1 01 00000000 ;no validation yet
|
|
MULU *,*,[*] 4E 4 I1 1 00 00000000 ;no validation yet
|
|
MULU *,*,*[*] 4F 6 I6 1 00 00000000 ;no validation yet
|
|
MULU *,*,#* 4D 5 I1 1 00 00000000 ;no validation yet
|
|
MULU *,[*]+ 6E 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
MULU *,[*] 6E 3 I1 1 00 0000FFFe ;1st arg must be even
|
|
MULU *,*[*] 6F 5 I6 1 00 00FeFFFe ;1st,3rd must be even
|
|
MULU *,*,* 4F01 6 I3 1 00 00000000 ;3rd arg may be far
|
|
MULU *,#* 6D 4 I1 1 00 00FeFFFF ;1st arg must be even
|
|
MULU *,* 6F01 5 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
|
|
MULUB *,*,[*]+ 5E 4 I1 1 01 00000000 ;no validation yet
|
|
MULUB *,*,[*] 5E 4 I1 1 00 00000000 ;no validation yet
|
|
MULUB *,*,*[*] 5F 6 I6 1 00 00000000 ;no validation yet
|
|
MULUB *,*,#* 5D 4 I1 1 00 00000000 ;no validation yet
|
|
MULUB *,[*]+ 7E 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
MULUB *,[*] 7E 3 I1 1 00 0000FFFe ;1st arg must be even
|
|
MULUB *,*[*] 7F 5 I6 1 00 00FFFFFF ;
|
|
MULUB *,*,* 5F01 6 I3 1 00 00000000 ;3rd arg may be far
|
|
MULUB *,#* 7D 3 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
|
MULUB *,* 7F01 5 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
MUL *,*,[*]+ FE4E 5 I1 1 01 00000000 ;no validation yet
|
|
MUL *,*,[*] FE4E 5 I1 1 00 00000000 ;no validation yet
|
|
MUL *,*,*[*] FE4F 7 I6 1 00 00000000 ;no validation yet
|
|
MUL *,*,#* FE4D 6 I1 1 00 00000000 ;no validation yet
|
|
MUL *,[*]+ FE6E 4 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
MUL *,[*] FE6E 4 I1 1 00 0000FFFe ;1st arg must be even
|
|
MUL *,*[*] FE6F 6 I6 1 00 00FeFFFe ;1st,3rd must be even
|
|
MUL *,*,* FE4F01 7 I3 1 00 00000000 ;3rd arg may be far
|
|
MUL *,#* FE6D 5 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
|
MUL *,* FE6F01 6 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
MULB *,*,[*]+ FE5E 5 I1 1 01 00000000 ;no validation yet
|
|
MULB *,*,[*] FE5E 5 I1 1 00 00000000 ;no validation yet
|
|
MULB *,*,*[*] FE5F 7 I6 1 00 00000000 ;no validation yet
|
|
MULB *,*,#* FE5D 5 I1 1 00 00000000 ;no validation yet
|
|
MULB *,[*]+ FE7E 4 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
MULB *,[*] FE7E 4 I1 1 00 0000FFFe ;1st arg must be even
|
|
MULB *,*[*] FE7F 6 I6 1 00 00FFFFFF ;
|
|
MULB *,*,* FE5F01 7 I3 1 00 00000000 ;3rd arg may be far
|
|
MULB *,#* FE7D 4 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
|
MULB *,* FE7F01 6 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
NEG * 03 2 I1 1 00 000000FE ;arg must be even
|
|
NEGB * 13 2 I1 1 00 000000FF ;
|
|
|
|
NOP "" FD 1 NOP 1 00 00000000 ;
|
|
|
|
NORML *,* 0F 3 I1 1 00 0000FFFF ;long align
|
|
|
|
NOT * 02 2 NOP 1 00 00000000 ;
|
|
NOTB * 12 2 NOP 1 00 00000000 ;
|
|
|
|
OR *,[*]+ 82 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
OR *,[*] 82 3 I1 1 00 0000FFFe ;1st arg must be even
|
|
OR *,*[*] 83 5 I6 1 00 00FeFFFe ;1st,3rd must be even
|
|
OR *,#* 81 4 I1 1 00 00FeFFFF ;1st arg must be even
|
|
OR *,* 8301 5 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
ORB *,[*]+ 92 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
ORB *,[*] 92 3 I1 1 00 0000FFFe ;1st arg must be even
|
|
ORB *,*[*] 93 5 I6 1 00 00FFFFFF ;
|
|
ORB *,#* 91 3 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
|
ORB *,* 9301 5 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
PUSH #* C9 3 I1 1 00 00000000 ;
|
|
PUSH [*]+ CA 2 I1 1 01 000000Fe ;arg must be even
|
|
PUSH [*] CA 2 I1 1 00 000000Fe ;arg must be even
|
|
PUSH *[*] CB 4 I6 1 00 00FFFFFe ;arg must be even
|
|
PUSH * CB01 4 I7 1 00 0000FFFe ;arg must be even
|
|
|
|
PUSHF "" F2 1 NOP 1 00 00000000 ;
|
|
PUSHA "" F4 1 NOP 1 00 00000000 ;
|
|
|
|
POP [*]+ CE 2 I1 1 01 000000Fe ;arg must be even
|
|
POP [*] CE 2 I1 1 00 000000Fe ;arg must be even
|
|
POP *[*] CF 4 I6 1 00 00FFFFFE ;
|
|
POP * CF01 4 I7 1 00 0000FFFe ;arg must be even
|
|
|
|
POPF "" F3 1 NOP 1 00 00000000 ;
|
|
POPA "" F5 1 NOP 1 00 00000000 ;
|
|
|
|
RET "" F0 1 NOP 1 00 00000000 ;
|
|
RST "" FF 1 NOP 1 00 00000000 ;
|
|
|
|
SJMP * 2000 2 I5 1 00 00000000
|
|
SCALL * 2800 2 I5 1 00 00000000
|
|
|
|
SUB *,*,[*]+ 4A 4 I1 1 01 00000000 ;no validation yet
|
|
SUB *,*,[*] 4A 4 I1 1 00 00000000 ;no validation yet
|
|
SUB *,*,*[*] 4B 6 I6 1 00 00000000 ;no validation yet
|
|
SUB *,*,#* 49 5 I1 1 00 00000000 ;no validation yet
|
|
SUB *,[*]+ 6A 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
SUB *,[*] 6A 3 I1 1 00 0000FFFe ;1st arg must be even
|
|
SUB *,*[*] 6B 5 I6 1 00 00FeFFFe ;1st,3rd must be even
|
|
SUB *,*,* 4B01 6 I3 1 00 00000000 ;3rd arg may be far
|
|
SUB *,#* 69 4 I1 1 00 00FeFFFF ;1st arg must be even
|
|
SUB *,* 6B01 5 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
SUBB *,*,[*]+ 5A 4 I1 1 01 00000000 ;no validation yet
|
|
SUBB *,*,[*] 5A 4 I1 1 00 00000000 ;no validation yet
|
|
SUBB *,*,*[*] 5B 6 I6 1 00 00000000 ;no validation yet
|
|
SUBB *,*,#* 59 4 I1 1 00 00000000 ;no validation yet
|
|
SUBB *,[*]+ 7A 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
SUBB *,[*] 7A 3 I1 1 00 0000FFFe ;1st arg must be even
|
|
SUBB *,*[*] 7B 5 I6 1 00 00FeFFFe ;1st,3rd must be even
|
|
SUBB *,*,* 5B01 6 I3 1 00 00000000 ;3rd arg may be far
|
|
SUBB *,#* 79 3 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
|
SUBB *,* 7B01 5 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
SUBC *,[*]+ AA 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
SUBC *,[*] AA 3 I1 1 00 0000FFFe ;1st arg must be even
|
|
SUBC *,*[*] AB 5 I6 1 00 00FeFFFe ;1st,3rd must be even
|
|
SUBC *,#* A9 4 I1 1 00 00FeFFFF ;1st arg must be even
|
|
SUBC *,* AB01 5 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
SUBCB *,[*]+ BA 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
SUBCB *,[*] BA 3 I1 1 00 0000FFFe ;1st arg must be even
|
|
SUBCB *,*[*] BB 5 I6 1 00 00FeFFFe ;1st,3rd must be even
|
|
SUBCB *,#* B9 3 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
|
SUBCB *,* BB01 5 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
SHL *,#* 09 3 I1 1 00 0000FE0F ; F
|
|
SHL *,* 09 3 I1 1 00 0000FEFF ;
|
|
SHLB *,#* 19 3 I1 1 00 0000FF0F ;
|
|
SHLB *,* 19 3 I1 1 00 0000FFFF ;
|
|
SHLL *,#* 0D 3 I1 1 00 0000FF0F ;
|
|
SHLL *,* 0D 3 I1 1 00 0000FFFF ;
|
|
|
|
SHR *,#* 08 3 I1 1 00 0000FF0F ;word align
|
|
SHR *,* 08 3 I1 1 00 0000FFFF ;word align
|
|
SHRB *,#* 18 3 I1 1 00 0000FF0F ;byte align
|
|
SHRB *,* 18 3 I1 1 00 0000FFFF ;byte align
|
|
SHRL *,#* 0C 3 I1 1 00 0000FF0F ;long align
|
|
SHRL *,* 0C 3 I1 1 00 0000FFFF ;long align
|
|
|
|
SHRA *,#* 0A 3 I1 1 00 0000FF0F ;word align
|
|
SHRA *,* 0A 3 I1 1 00 0000FFFF ;word align
|
|
SHRAB *,#* 1A 3 I1 1 00 0000FF0F ;byte align
|
|
SHRAB *,* 1A 3 I1 1 00 0000FFFF ;byte align
|
|
SHRAL *,#* 0E 3 I1 1 00 0000FF0F ;long align
|
|
SHRAL *,* 0E 3 I1 1 00 0000FFFF ;long align
|
|
|
|
SETC "" F9 1 NOP 1 00 00000000 ;
|
|
|
|
|
|
SKIP "" 0000 2 NOP 1 00 00000000 ;
|
|
SKIP * 00 2 I1 1 00 00000000 ;
|
|
|
|
ST *,[*]+ C2 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
ST *,[*] C2 3 I1 1 00 0000FFFe ;1st arg must be even
|
|
ST *,*[*] C3 5 I6 1 00 FFFFFFFe ;1st,3rd must be even
|
|
ST *,* C301 5 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
STB *,[*]+ C6 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
STB *,[*] C6 3 I1 1 00 0000FFFe ;1st arg must be even
|
|
STB *,*[*] C7 5 I6 1 00 FFFFFFFe ;1st,3rd must be even
|
|
STB *,* C701 5 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
TRAP "" F7 1 NOP 1 00 00000000 ;
|
|
|
|
TIJMP *,[*],#* E2 4 I8 2 00 00FEFEFF ;
|
|
|
|
XCH *,*[*] 0B 5 I6 2 00 00FeFFFe ;1st,3rd must be even
|
|
XCH *,* 0B01 5 I2 2 0C 00000000 ;2nd arg may be far
|
|
|
|
XCHB *,*[*] 1B 5 I6 2 00 00FFFFFF ;
|
|
XCHB *,* 1B01 5 I2 2 0C 00000000 ;2nd arg may be far
|
|
|
|
XOR *,[*]+ 86 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
XOR *,[*] 86 3 I1 1 00 0000FFFe ;1st arg must be even
|
|
XOR *,*[*] 87 5 I6 1 00 00FeFFFe ;1st,3rd must be even
|
|
XOR *,#* 85 4 I1 1 00 00FeFFFF ;1st arg must be even
|
|
XOR *,* 8701 5 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
XORB *,[*]+ 96 3 I1 1 01 0000FFFe ;1st arg must be even, make odd
|
|
XORB *,[*] 96 3 I1 1 00 0000FFFe ;1st arg must be even
|
|
XORB *,*[*] 97 5 I6 1 00 00FFFFFF ;
|
|
XORB *,#* 95 3 I1 1 00 00FFFFFF ;odd args ok for byte operations
|
|
XORB *,* 9701 5 I2 1 00 00000000 ;2nd arg may be far
|
|
|
|
|
|
|