Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Assemblers System Programming by Leland L. Beck Chapter 2.

Similar presentations


Presentation on theme: "1 Assemblers System Programming by Leland L. Beck Chapter 2."— Presentation transcript:

1 1 Assemblers System Programming by Leland L. Beck Chapter 2

2 2 Introduction to Assemblers l Fundamental functions »translating mnemonic operation codes to their machine language equivalents »assigning machine addresses to symbolic labels l Machine dependency »different machine instruction formats and codes l Basic assembler directives »START, END, BYTE, WORD, RESB, RESW

3 3 Example Program (Fig. 2.1) l Purpose »reads records from input device (code F1) »copies them to output device (code 05) »at the end of the file, writes EOF on the output device, then RSUB to the operating system l Data transfer (RD, WD) »a buffer is used to store record »buffering is necessary for different I/O rates »the end of each record is marked with a null character (00 16 ) »the end of the file is indicated by a zero-length record l Subroutines (JSUB, RSUB) »RDREC, WRREC »save link register first before nested jump

4 4 Assembler’s functions l Assembler’s functions »Convert mnemonic operation codes to their machine language equivalents »Convert symbolic operands to their equivalent machine addresses »Build the machine instructions in the proper format »Convert the data constants to internal machine representations »Write the object program and the assembly listing

5 5 Difficulties l Address translation »forward reference »2 passes –label definitions and assign addresses –actual translation (obj code)

6 6 Object Program l Header Col. 1H Col. 2~7Program name Col. 8~13Starting address (hex) Col. 14-19Length of object program in bytes (hex) l Text Col.1 T Col.2~7Starting address in this record (hex) Col. 8~9Length of object code in this record in bytes (hex) Col. 10~69Object code (69-10+1)/6=10 records l End Col.1E Col.2~7Address of first executable instruction (hex) (END program_name)

7 7 Two Pass Assembler l Pass 1 »Assign addresses to all statements in the program »Save the values assigned to all labels for use in Pass 2 »Perform some processing of assembler directives l Pass 2 »Assemble instructions »Generate data values defined by BYTE, WORD »Perform processing of assembler directives not done in Pass 1 »Write the object program and the assembly listing

8 8 Data Structures l OPTAB (operation code table) »menmonic, machine code (instruction format, length) etc. »static table »instruction length »array or hash table, easy for search l SYMTAB (symbol table) »label name, value, flag, (type, length) etc. »dynamic table (insert, delete, search) »hash table, non-random keys, hashing function l Location Counter »counted in bytes

9 9 Mnemonic l Read from input line »LABEL, OPCODE, OPERAND Pass 1Pass 2 Intermediate file Object codes Source program OPTAB SYMTAB

10 10 Assembler Design l Machine Dependent Assembler Features »instruction formats and addressing modes »program relocation l Machine Independent Assembler Features »literals »symbol-defining statements »expressions »program blocks »control sections and program linking


Download ppt "1 Assemblers System Programming by Leland L. Beck Chapter 2."

Similar presentations


Ads by Google