Design Prototype 1 Proto 2 Alpha Beta Release 1 | | | | | | +--------------+--------------+--------------+--------------+--------------+ 10/00 6/01 10/01 2/02 6/02 9/02 : / \ | today
Apr 27, 2001
pasm has been rewritten so many times that it has a new lexer and parser structure. The code was totally written from scratch that only the tokens were only the items carried over. Inspired and influenced by coding styles from various code written by well-known programmers. The lexer was heavily influenced by ANSI C lexer while the parser module was influenced both ANSI C and ANSI C++ parsers.
There were changes made to the instruction list too. It is now much simpler, a doubly-linked list of elements called instructions. Each instruction contain a number of structs, one for each part that makes up an instruction, like opcode, mod/R/M, reg, sib, disp, immediate, etc.
Milestone L.O.C. -------------------- Design 1K - 2K Proto 1 3K - 9K Proto 2 2K - 7K Alpha 4K - 7K Beta 4K - 9K Rel 1 5K - 7K
-------------------------------------------------------- Item Status Done -------------------------------------------------------- Presentation: X11: Windows: BeOS: Mac: Business: Lexer: scope all tokens 100% Parser Rules: No operand instructions 100% 10/20/2000 Move 20% Add 60% Sub Mul Div Parser Actions: No operand instructions Add Sub Mul Div Data: ---------------------------------------------------------
------------------------- Presentation ------------------------- +-----------+ +------------+ +----------+ | X11 | | Win32/MFC | | Mac/BeOS | +-----------+ +------------+ +----------+ ------------------------- Business ----------------------------- +-----------+ +------------+ +-----------+ | Lexer | | Parser | |IA Emitter | +-----------+ +------------+ +-----------+ +-----------+ +------------+ +-----------+ | Sym. Table| | Parse Tree | |XX Emitter | +-----------+ +------------+ +-----------+ ------------------------- Data --------------------------------- +-----------+ +------------+ | File | | Port | +-----------+ +------------+
What is pasm? [tbd]
Pasm is an assembly language compiler. Intended to translate masm, tasm and nasm syntax into
machine code instructions.
What are the parts of pasm? [tbd]
What tools are needed to build pasm? [tbd]
Linux, lex, yacc, gcc, IA-32 developers manual (instruction set)