10-Pass I

You might also like

Download as pdf
Download as pdf
You are on page 1of 1
Algorithm 4.1 (Assembler First Pass) ‘default value) 1; POOLTAB [I] := I: 1. lac_enir = lintab.ptr := 1; 2. While next statement is not an END statement (a) If label is present then this Jabel = symbol in label field; Enter (this label, loc_cntr) in SYMTAB, (by fan LTORG statement then (i) Process literals LITTAB [POOLTAB [pooltabpir} ]--. LIT TAB |lit- tab_ptr—1] to allocate memory and put the address in the uiddress field. Update loe_cntr accordingly. (ii) poottab_ptr ‘= pooltab_pir +1; (iii) POOLTAB [pooliab ptr] == litab_pirs (c) Ifa START or ORIGIN statement then Joc_entr := value specified in operand field: (d) [fan EQU statement then (i) this.addr := value of
; (ii) Correct the symtab entry for thiy-Jabel to (this Label, this addr, (e) Ifadeclaration statement then (i) code := code of the declaration statement; (ii) size ‘= size of memory area required by DC/DS. (iii) toc-entr == Toc-cntr + siz (iv) Generate IC “(DL, code) -- (£) If an imperative statement then (i) code := machine opcode from OPTAB; (i) doc.ener := loe_entr+ instruction length from OPTAB: (ii) If operand is a literal then this tireral := literal in operand field: LITTAB [littab_pir] := this literal: littab_ptr := littab_ptr+ 1; else (i.e, operand is a symbol) this entry == SYMTAB entry number of operand: Generate IC ‘(IS, code)(S, this.entry)’; 3. (Processing of END statement) {a) Perform step 2(b). (b) Generate IC ‘(AD,02)'. {@) Goto Pass Il.

You might also like