Initial revision
This commit is contained in:
228
mach/i86/ce/as_table
Normal file
228
mach/i86/ce/as_table
Normal file
@@ -0,0 +1,228 @@
|
||||
adc dst:REG, src:EADDR ==> @text1( 0x13);
|
||||
mod_RM( dst->reg, src).
|
||||
|
||||
add dst:REG, src:EADDR ==> @text1( 0x3);
|
||||
mod_RM( dst->reg, src).
|
||||
|
||||
... dst:ACCU, src:DATA ==> @text1( 0x5);
|
||||
@text2( %$(src->expr)).
|
||||
|
||||
... dst:EADDR, src:DATA ==> @text1( 0x81);
|
||||
mod_RM( 0, dst);
|
||||
@text2( %$(src->expr)).
|
||||
|
||||
... dst:ACCU, src:lABEL ==> @text1( 0x5);
|
||||
@reloc2( %$(src->lab), %$(src->off), !PC_REL).
|
||||
|
||||
... dst:EADDR, src:lABEL ==> @text1( 0x81);
|
||||
mod_RM( 0, dst);
|
||||
@reloc2( %$(src->lab), %$(src->off), !PC_REL).
|
||||
|
||||
and dst:REG, src:EADDR ==> @text1( 0x23);
|
||||
mod_RM( dst->reg, src).
|
||||
|
||||
... dst:ACCU, src:DATA ==> @text1( 0x25);
|
||||
@text2( %$(src->expr)).
|
||||
|
||||
call dst:lABEL ==> @text1( 0xe8);
|
||||
@reloc2( %$(dst->lab), %$(dst->off), PC_REL).
|
||||
|
||||
... dst:EADDR ==> @text1( 0xff);
|
||||
mod_RM( 2, dst).
|
||||
|
||||
cmp dst:REG, src:EADDR ==> @text1( 0x3b);
|
||||
mod_RM( dst->reg, src).
|
||||
|
||||
... dst:ACCU, src:DATA ==> @text1( 0x3d);
|
||||
@text2( %$(src->expr)).
|
||||
|
||||
cwd ==> @text1( 0x99).
|
||||
|
||||
dec dst:REG ==> R53( 9, dst->reg).
|
||||
|
||||
... dst:EADDR ==> @text1( 0xff);
|
||||
mod_RM( 1, dst).
|
||||
|
||||
div divisor:EADDR ==> @text1( 0xf7);
|
||||
mod_RM( 6, divisor).
|
||||
|
||||
idiv divisor:EADDR ==> @text1( 0xf7);
|
||||
mod_RM( 7, divisor).
|
||||
|
||||
inc dst:REG ==> R53( 8, dst->reg).
|
||||
|
||||
... dst:EADDR ==> @text1( 0xff);
|
||||
mod_RM( 0, dst).
|
||||
|
||||
jb dst:ILB ==> @text1( 0x72);
|
||||
@text1( %dist( dst->lab)).
|
||||
|
||||
je dst:ILB ==> @text1( 0x74);
|
||||
@text1( %dist( dst->lab)).
|
||||
|
||||
... dst:lABEL ==> save_op( dst);
|
||||
assemble( "jne 9f");
|
||||
jmp_instr( &saved_op);
|
||||
assemble( "9:").
|
||||
|
||||
jg dst:ILB ==> @text1( 0x7f);
|
||||
@text1( %dist( dst->lab)).
|
||||
|
||||
... dst:lABEL ==> save_op( dst);
|
||||
assemble( "jle 9f");
|
||||
jmp_instr( &saved_op);
|
||||
assemble( "9:").
|
||||
|
||||
jge dst:ILB ==> @text1( 0x7d);
|
||||
@text1( %dist( dst->lab)).
|
||||
|
||||
... dst:lABEL ==> save_op( dst);
|
||||
assemble( "jl 9f");
|
||||
jmp_instr( &saved_op);
|
||||
assemble( "9:").
|
||||
|
||||
jl dst:ILB ==> @text1( 0x7c);
|
||||
@text1( %dist( dst->lab)).
|
||||
|
||||
... dst:lABEL ==> save_op( dst);
|
||||
assemble( "jge 9f");
|
||||
jmp_instr( &saved_op);
|
||||
assemble( "9:").
|
||||
|
||||
jle dst:ILB ==> @text1( 0x7e);
|
||||
@text1( %dist( dst->lab)).
|
||||
|
||||
... dst:lABEL ==> save_op( dst);
|
||||
assemble( "jg 9f");
|
||||
jmp_instr( &saved_op);
|
||||
assemble( "9:").
|
||||
|
||||
jmp dst:ILB ==> @text1( 0xeb);
|
||||
@text1( %dist( dst->lab)).
|
||||
|
||||
... dst:lABEL ==> @text1( 0xe9);
|
||||
@reloc2( %$(dst->lab), %$(dst->off), PC_REL).
|
||||
|
||||
jne dst:ILB ==> @text1( 0x75);
|
||||
@text1( %dist( dst->lab)).
|
||||
|
||||
... dst:lABEL ==> save_op( dst);
|
||||
assemble( "je 9f");
|
||||
jmp_instr( &saved_op);
|
||||
assemble( "9:").
|
||||
|
||||
lea dst:REG, src:EADDR ==> @text1( 0x8d);
|
||||
mod_RM( dst->reg, src).
|
||||
|
||||
loop dst:ILB ==> @text1( 0xe2);
|
||||
@text1( %dist( dst->lab)).
|
||||
|
||||
mov dst:REG, src:EADDR ==> mov_REG_EADDR( dst, src).
|
||||
|
||||
... dst:REG, src:DATA ==> R53( 0x17, dst->reg);
|
||||
@text2( %$(src->expr)).
|
||||
|
||||
... dst:REG, src:lABEL ==> R53( 0x17, dst->reg);
|
||||
@reloc2( %$(src->lab), %$(src->off), !PC_REL).
|
||||
|
||||
... dst:EADDR, src:REG ==> @text1( 0x89);
|
||||
mod_RM( src->reg, dst).
|
||||
|
||||
... dst:EADDR, src:DATA ==> @text1( 0xc7);
|
||||
mod_RM( 0, dst);
|
||||
@text2( %$(src->expr)).
|
||||
|
||||
... dst:EADDR, src:lABEL ==> @text1( 0xc7);
|
||||
mod_RM( 0, dst);
|
||||
@reloc2( %$(src->lab), %$(src->off), !PC_REL).
|
||||
|
||||
movb dst:REG, src:EADDR ==> @text1( 0x8a);
|
||||
mod_RM( dst->reg, src).
|
||||
|
||||
... dst:EADDR, src:REG ==> @text1( 0x88);
|
||||
mod_RM( src->reg, dst).
|
||||
|
||||
mul mplier:EADDR ==> @text1( 0xf7);
|
||||
mod_RM( 4, mplier).
|
||||
|
||||
neg dst:EADDR ==> @text1( 0xf7);
|
||||
mod_RM( 3, dst).
|
||||
|
||||
not dst:EADDR ==> @text1( 0xf7);
|
||||
mod_RM( 2, dst).
|
||||
|
||||
or dst:REG, src:EADDR ==> @text1( 0x0b);
|
||||
mod_RM( dst->reg, src).
|
||||
|
||||
pop dst:REG ==> R53( 0xb, dst->reg).
|
||||
|
||||
... dst:EADDR ==> @text1( 0x8f);
|
||||
mod_RM( 0, dst).
|
||||
|
||||
POP dst ==> @if ( push_waiting)
|
||||
mov_instr( dst, AX_oper);
|
||||
@assign( push_waiting, FALSE).
|
||||
@else
|
||||
pop_instr( dst).
|
||||
@fi.
|
||||
|
||||
push src:REG ==> R53( 0xa, src->reg).
|
||||
|
||||
... src:EADDR ==> @text1( 0xff);
|
||||
mod_RM( 6, src).
|
||||
|
||||
PUSH src ==> mov_instr( AX_oper, src);
|
||||
@assign( push_waiting, TRUE).
|
||||
|
||||
rcr dst:EADDR, src:CONST1 ==> @text1( 0xd1);
|
||||
mod_RM( 3, dst).
|
||||
|
||||
rep ins:MOVS ==> @text1( 0xf3);
|
||||
@text1( 0xa5). /* Wie zet direction flag? */
|
||||
|
||||
ret ==> @text1( 0xc3). /* Altijd NEAR! */
|
||||
|
||||
rol dst:EADDR, src:REG_CL ==> @text1( 0xd3);
|
||||
mod_RM( 0, dst).
|
||||
|
||||
ror dst:EADDR, src:REG_CL ==> @text1( 0xd3);
|
||||
mod_RM( 1, dst).
|
||||
|
||||
sal dst:EADDR, src:REG_CL ==> @text1( 0xd3);
|
||||
mod_RM( 4, dst).
|
||||
|
||||
sar dst:EADDR, src:REG_CL ==> @text1( 0xd3);
|
||||
mod_RM( 7, dst).
|
||||
|
||||
... dst:EADDR, src:CONST1 ==> @text1( 0xd1);
|
||||
mod_RM( 7, dst).
|
||||
|
||||
sbb dst:REG, src:EADDR ==> @text1( 0x1b);
|
||||
mod_RM( dst->reg, src).
|
||||
|
||||
... dst:ACCU, src:DATA ==> @text1( 0x1d);
|
||||
@text2( %$(src->expr)).
|
||||
|
||||
shl dst, src ==> sal_instr( dst, src).
|
||||
|
||||
shr dst:EADDR, src:REG_CL ==> @text1( 0xd3);
|
||||
mod_RM( 5, dst).
|
||||
|
||||
... dst:EADDR, src:CONST1 ==> @text1( 0xd1);
|
||||
mod_RM( 5, dst).
|
||||
|
||||
sub dst:REG, src:EADDR ==> @text1( 0x2b);
|
||||
mod_RM( dst->reg, src).
|
||||
|
||||
... dst:EADDR, src:DATA ==> @text1( 0x81);
|
||||
mod_RM( 5, dst);
|
||||
@text2( %$(src->expr)).
|
||||
|
||||
test dst:REG, src:EADDR ==> @text1( 0x85);
|
||||
mod_RM( dst->reg, src).
|
||||
|
||||
xchg dst:EADDR, src:REG ==> @text1( 0x87);
|
||||
mod_RM( src->reg, dst).
|
||||
|
||||
xor dst:REG, src:EADDR ==> @text1( 0x33);
|
||||
mod_RM( dst->reg, src).
|
||||
Reference in New Issue
Block a user