47 lines
2.5 KiB
C
47 lines
2.5 KiB
C
#ifndef ASSEMBLER_H
|
|
#define ASSEMBLER_H
|
|
|
|
enum {
|
|
D8, D16, D32, D64
|
|
};
|
|
|
|
enum {
|
|
REL, REG, MEM, IMM
|
|
};
|
|
|
|
enum {
|
|
ASMDIRMEM, ASMDIRREL, ASMDIRIMM, ASMDIRREP,
|
|
ADD, OR, ADC, SBB, AND, SUB, XOR, CMP,
|
|
INC, DEC, NOT, NEG, MUL, IMUL, DIV, IDIV,
|
|
FADD, FMUL, FCOM, FCOMP, FSUB, FSUBR, FDIV, FDIVR,
|
|
NOP, RETN, RETF, LEAVE, POPF, PUSHF,
|
|
SYSCALL, CPUID, FNOP, FCHS, FABS, FTST, FXAM, FLD1,
|
|
FLDL2T, FLDL2E, FLDPI, FLDLG2, FLDLN2, FLDZ, F2XM1, FYL2X,
|
|
FPTAN, FPATAN, FXTRACT, FPREM1, FDECSTP, FINCSTP, FPREM, FYL2XP1,
|
|
FSQRT, FSINCOS, FRNDINT, FSCALE, FSIN, FCOS,
|
|
ENTER, CALL, IN, OUT, JMP, MOV, POP, PUSH,
|
|
JO, JNO, JB, JAE, JE, JNE, JBE, JA,
|
|
JS, JNS, JPE, JPO, JL, JGE, JLE, JG,
|
|
CMOVO, CMOVNO, CMOVB, CMOVAE, CMOVE, CMOVNE, CMOVBE, CMOVA,
|
|
CMOVS, CMOVNS, CMOVPE, CMOVPO, CMOVL, CMOVGE, CMOVLE, CMOVG,
|
|
BSWAP, TEST, XCHG, LEA, BSF, BSR,
|
|
RCL, RCR, ROL, ROR, SHL, SHR, SAL, SAR,
|
|
REP, REPE, REPNE, REPZ, REPNZ, LOOP, LOOPE, LOOPNE
|
|
};
|
|
|
|
enum {
|
|
GR0, GR1, GR2, GR3, GR4, GR5, GR6, GR7,
|
|
GR8, GR9, GR10, GR11, GR12, GR13, GR14, GR15
|
|
};
|
|
|
|
extern unsigned int nopification;
|
|
extern unsigned int text_entry_point;
|
|
extern unsigned int text_sector_size;
|
|
extern unsigned char * text_sector_byte;
|
|
|
|
extern int was_instruction_array_empty;
|
|
|
|
extern int assemble (unsigned int count, unsigned int * array);
|
|
|
|
#endif
|