Pinoy Assembler (pasm)

Apr 27, 2001
Nov 4, 2000


[summary | cvs | diary ]

Milestone

Design        Prototype 1      Proto 2       Alpha          Beta           Release 1
  |              |              |              |              |              |
  +--------------+--------------+--------------+--------------+--------------+
 10/00          6/01          10/01           2/02           6/02           9/02
            :
           / \
            |
          today

Download

pasm-linux

News

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.

Projections/Estimates

        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:


	---------------------------------------------------------

News

Groundbreaking of pasm.

Design

[tbd]
	------------------------- Presentation -------------------------

		+-----------+     +------------+   +----------+
		|   X11     |     | Win32/MFC  |   | Mac/BeOS |
		+-----------+     +------------+   +----------+

	------------------------- Business -----------------------------

		+-----------+    +------------+   +-----------+
		|  Lexer    |    |   Parser   |   |IA Emitter |
		+-----------+    +------------+   +-----------+

		+-----------+    +------------+   +-----------+
		| Sym. Table|    | Parse Tree |   |XX Emitter |
		+-----------+	 +------------+   +-----------+

	------------------------- Data ---------------------------------

		+-----------+    +------------+
		|   File    |    |   Port     | 
		+-----------+    +------------+

FAQ

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)