Creating An Assembler With Assembly Language
Here is some information and examples about creating
an assembler with assembly language...
LIBRARY :
OpData.zip
LIBRARY :
Compiler.zip
; /// MACRO AND PROCEDURE DEFINITIONS USED IN THE
Compiler.Asm FILE ////
;;///////////////////////////////////////////////////////////////////////////////////////////////////////
; si =
offset textbuffer
ISREG816
PROC
ISSEGREG
PROC
; si = offset textbuffer
ISREG32
PROC
CLEAROPFLAGS
PROC
; si = offset opbuffer
GETDISP
PROC
GETSCALE
PROC
SEARCHSUBINOPCODE
PROC
GETMEMSIZEFLAG
PROC
CLEAROPERANDBUFFERS
PROC
CLEAROPERAND
PROC
;
/////////////////////////////////////////////////////////////////////////////////////
; //////////////// opcode decoding routines //////////////
;
////////////////////////////////////////////////////////////////////////////////////
; used to check reg to reg opcodes
CHECKREGTOREG
PROC
; ///////////////////// used if only one opcode like cmpsd ////////////////
OPCODEONLY
PROC
TWOOPCODEONLY
PROC
; reverses a registers bytes
; 11223344h becomes 44332211h
; eax = entry
REVERSEREG
PROC
; checks if there is an immediate operand
; si = offset operand bp = operand index
; output
; dx = 0 if none else dx = 1
; eax = immediate value
; bx = operand type
; bx = 37 imm8
; bx = 38 imm16
; bx = 39 imm32
CHECKIMM
PROC
; scaled opcode
GETSCALEDOPCODE
PROC
; non scaled opcode
GETMEM32OPCODE
PROC
GETMEM16OPCODE
PROC
INOUTOPCODE
PROC
SHOWMPLCODE
MACRO
ISMMXREG
MACRO TEXTBUFFER,REGBUFFER
ISSTREG
MACRO TEXTBUFFER,REGBUFFER
GETOPERANDS
MACRO
GETOPCODEPARAMS
MACRO
GETOVERRIDE
MACRO OPBUFFER
GETADDRMOD
MACRO OPBUFFER
GETMODRMSIB
MACRO
GETMODRMSIBSCALED
MACRO
GETMODRM
MACRO
SEARCHOPCODETABLE
MACRO BUFFER
SHOWOPCODEPARAMS