Presentation is loading. Please wait.

Presentation is loading. Please wait.

Assemblers Dr. Monther Aldwairi 10/21/20071Dr. Monther Aldwairi.

Similar presentations


Presentation on theme: "Assemblers Dr. Monther Aldwairi 10/21/20071Dr. Monther Aldwairi."— Presentation transcript:

1 Assemblers Dr. Monther Aldwairi 10/21/20071Dr. Monther Aldwairi

2 Fundamental Functions Generate machine language – Translate mnemonic operation codes to machine code Assign addresses to symbolic labels used by the programmer 10/21/20072Dr. Monther Aldwairi

3 Additional Functions Generate an image of what memory must look like for the program to be executed. Interpret assembler directives (Pseudo- Instructions) – They provide instructions to the assembler – They do not translate into machine code – They might affect the object code 10/21/20073Dr. Monther Aldwairi

4 Input / Output Input Assembly Code Output – Assembly Listing – Object Code Intermediate files – Assembly Listing – LOCCTR – Instruction Length – Error Flags 10/21/20074Dr. Monther Aldwairi

5 Input Instruction Data ORG $10 DC.W 20, 30, 50 10/21/20075Dr. Monther Aldwairi

6 Input 10/21/2007Dr. Monther Aldwairi6

7 Output/ Assembly Listing 10/21/20077Dr. Monther Aldwairi

8 Output Record TypeColumnContent 1 1Record Type = 1 2-3Byte Count 4-7The execution start address (Hex) 8-9Check Sum (CS) 2 1Record Type = 2 2-3Byte Count 4-7The load address for the instruction/data (Hex) 8-57The code to be loaded in Hex 58-59Check Sum (CS) 10/21/20078Dr. Monther Aldwairi

9 Object Code 10/21/2007Dr. Monther Aldwairi9

10 Design Approach One Pass: Line by Line – forward reference? Two Passes: – Pass 1 – Pass2 Intermediate files 10/21/200710 Dr. Monther Aldwairi

11 One-Pass Assembler The main problem is forward reference. Eliminating forward reference – Simply ask the programmer to define variables before using them. However, ?! – Backward jumps is too restrictive. – Forward jumps (Subroutine calls, Loops) 10/21/2007Dr. Monther Aldwairi11

12 Input 10/21/2007Dr. Monther Aldwairi12

13 Output/ Assembly Listing 10/21/200713Dr. Monther Aldwairi

14 Output Object Code Record TypeColumnContent 1 1Record Type = 1 2-3Byte Count 4-7The execution start address (Hex) 8-9Check Sum (CS) 2 1Record Type = 2 2-3Byte Count 4-7The load address for the instruction/data (Hex) 8-57The code to be loaded in Hex 58-59Check Sum (CS) 10/21/200714Dr. Monther Aldwairi

15 Example 10/21/2007Dr. Monther Aldwairi15

16 Example 10/21/2007Dr. Monther Aldwairi16

17 Forward Reference For any symbol that has not yet been defined 1. omit the address translation 2. insert the symbol into SYMTAB, and mark this symbol undefined 3. the address that refers to the undefined symbol is added to a list of forward references associated with the symbol table entry 4. when the definition for a symbol is encountered, the proper address for the symbol is then inserted into any instructions previous generated according to the forward reference list 10/21/2007Dr. Monther Aldwairi17

18 Load-and-go Assembler (Cont.) At the end of the program – any SYMTAB entries that are still marked with * indicate undefined symbols – search SYMTAB for the symbol named in the END statement and jump to this location to begin execution The actual starting address must be specified at assembly time 10/21/2007Dr. Monther Aldwairi18

19 Processing Example 10/21/2007Dr. Monther Aldwairi19 After scanning line 40

20 Processing Example 10/21/2007Dr. Monther Aldwairi20 After scanning line 160

21 Two Passes Pass 1 – Validate Opcodes – Assign addresses to all statements in the program – Scan the source for labels and save their values – Perform some processing of assembler directives Determine the length of areas defined by DC, DS Pass 2 – Translate/assemble the instructions – Generate Data Values defined by DC – Process the rest of the assembler directives – Write the Object Code and Assembly Listing 10/21/200721Dr. Monther Aldwairi

22 Data Structures Operation Code Table (OPTAB) – Opcode, Instruction format, and length – Pass 1: Validate opcodes – Pass2: Assemble instructions Symbol Table (SYMTAB) – Label name and value, error flags – Pass 1: Created! – Lookup symbols to insert in assembled instr. Location Counter – Initialed to the Org or End 10/21/200722Dr. Monther Aldwairi

23 A Simple Two Pass Assembler Implementation 10/21/2007Dr. Monther Aldwairi23 Pass 1Pass 2 Object codes Source program OPTAB SYMTAB Label and address mappings created Label and address mappings are referenced Mnemonic and opcode mappings are referenced READ (Label, opcode, operand)

24 Hash Tables OPTAB is static (access) – Retrieval efficiency – Key : Mnemonic operation SYMTAB (add, access) – Insertion and Retrieval efficiency – Key: Label Name LOOP1, LOOP2, LOOP3…, A, X, Y, Z… 10/21/200724Dr. Monther Aldwairi

25 OPTAB (operation code table) Content – The mapping between mnemonic and machine code. Also include the instruction format, available addressing modes, and length information. Characteristic – Static table. The content will never change. Implementation – Array or hash table. Because the content will never change, we can optimize its search speed. In pass 1, OPTAB is used to look up and validate mnemonics in the source program. In pass 2, OPTAB is used to translate mnemonics to machine instructions. 10/21/2007Dr. Monther Aldwairi25

26 Symbol Table (SYMTAB) Content – Include the label name and value (address) for each label in the source program. – Include type and length information (e.g., int64) – With flag to indicate errors (e.g., a symbol defined in two places) Characteristic – Dynamic table (I.e., symbols may be inserted, deleted, or searched in the table) Implementation – Hash table can be used to speed up search – Because variable names may be very similar (e.g., LOOP1, LOOP2), the selected hash function must perform well with such non-random keys. 10/21/2007Dr. Monther Aldwairi26

27 Pass 1 Pseudo Code 10/21/2007Dr. Monther Aldwairi27

28 Pass 1 10/21/2007Dr. Monther Aldwairi28

29 Pass 1 10/21/2007Dr. Monther Aldwairi29

30 Pass 2 Pseudo Code 10/21/2007Dr. Monther Aldwairi30

31 Pass 2 10/21/2007Dr. Monther Aldwairi31

32 Pass 2 10/21/2007Dr. Monther Aldwairi32


Download ppt "Assemblers Dr. Monther Aldwairi 10/21/20071Dr. Monther Aldwairi."

Similar presentations


Ads by Google