answersLogoWhite

0


Best Answer

In theory the only advantage is Speed simply because one pass is faster than two passes. However a properly written two pass assembler can be faster than a poorly written one pass assembler because the two pass assembler spends alot less time doing memory intensive lookups, look-aheads, and back-tracking.

User Avatar

Wiki User

14y ago
This answer is:
User Avatar
More answers
User Avatar

Wiki User

14y ago

The main reason why most assemblers use a 2-pass system is to address the problem of forward references -- references to variables or subroutines that have not yet been encountered when parsing the source code. A strict 1-pass scanner cannot assemble source code which contains forward references. Pass 1 of the assembler scans the source, determining the size and address of all data and instructions; then pass 2 scans the source again, outputting the binary object code.

Some assemblers have been written to use a 1.5 (one and a half) pass scheme, whereby the source is only scanned once, but any forward references are simply assumed to be of the largest size necessary to hold any native machine data type (for instance, assuming a reference to the address of an as-yet unencountered subroutine could be very far away, necessitating the use of a far branch). The unknown quantity is temporarily filled in as zero during pass 1 of the assembler, and the forward reference is added to a 'fix-up list'. After pass 1, the '.5' pass goes through the fix-up list and patches the output machine code with the values of all resolved forward references. This can result in sub-optimal opcode construction, but allows for a very fast assembly phase.

This answer is:
User Avatar

User Avatar

Wiki User

10y ago

disadvantage of two pass assembler

This answer is:
User Avatar

Add your answer:

Earn +20 pts
Q: Advantages of one pass assembler over two pass assembler?
Write your answer...
Submit
Still have questions?
magnify glass
imp
Related questions

Assembler design options?

Two main options for the design of assembler are: 1. One pass assembler 2. Multi-pass assembler One pass assemblers generally have problem of "forward referencing" which is resolved by using mulitpasses


What is pass1 assembler?

pass 1 assembler is assembler which convert assembly level language into machine level language in one pass only


What is the output of the parser from a compiler?

The output of an assembler is a part or all of a product. An assembler can work in a variety of manufacturing operations with the right training.


What is multi pass assembler?

multipass assembler means more than one pass is used by assembler.multipass assembler is used to eliminate forward references in sybol definition.it creates a number of passes that is necessary to process the definition of symbols•Multi pass assembler:-Does the work in two pass-Resolves the forward references•First pass:-Scans the code-Validates the tokens-Creates a symbol table•Second Pass:-Solves forward references-Converts the code to the machine code


What is the Design of single pass assembler?

Single Pass Assembler A single pass assembler scans the program only once and creates the equivalent binary program. The assembler substitute all of the symbolic instruction with machine code in one pass. AdvantagesEvery source statement needs to be processed once.DisadvantagesWe cannot use any forward reference in our program. Forward ReferenceForward reference means; reference to an instruction which has not yet been encountered by the assembler. In order to handle forward reference, the program needs to be scanned twice. In other words a two pass assembler is needed.


Use of two pass assembler?

A two-pass assembler reads through the source code twice. Each read-through is called a pass. On pass one the assembler doesn't write any code. It builds up a table of symbolic names against values or addresses. On pass two, the assembler generates the output code, using the table to resolve symbolic names, enabling it to enter the correct values. The advantage of a two-pass assember is that it allows forward referencing in the source code because when the assembler is generating code it has already found all references.


What is the difference between one pass and two pass assembler?

The difference between one pass and two pass assemblers is basically in the name. A one pass assembler passes over the source file exactly once, in the same pass collecting the labels, resolving future references and doing the actual assembly. The difficult part is to resolve future label references and assemble code in one pass. A two pass assembler does two passes over the source file ( the second pass can be over a file generated in the first pass ). In the first pass all it does is looks for label definitions and introduces them in the symbol table. In the second pass, after the symbol table is complete, it does the actual assembly by translating the operations and so on.


What additional features would a three-pass assembler afford the user?

Ans: If we talk about multi-pass or say three pass assembler it afford user with lots of additional features in solving any problem for example where two pass assembler fails for example in instructions like these given below:ALFA EQU BETADELTA EQU ALFA..BETA EQU 24Where two pass assembler could only resolve forward reference upto ALFA equals BETA after getting value of BETA which is defined afterwards in the program which is forward reference but could be inefficient to allot value to DELTA simultaneously.In such conditions multi pass assembler like three pass assembler could easily resolve the issue in its third pass after getting value of ALFA in second pass and assigning it to DELTA (forward reference) in third pass.Though it could become somehow complex using this type of assembler even takes longer time too but its more reliable in programming than one or two pass assemblers which could not guarantee to solve our problem with best efficiency.


Where can you get an assembler?

One well known and good assembler is NASM. (Netwide ASseMbler). This can be found at http://nasm.sf.net


What is forward reference in one pass assembler?

When one pass assembler constructing the object code, if it finds usage of the variables before the declaration then forward reference problem will occur. To avoid forward reference problem: i) Declare the symbols before using it ii) Use more than one pass assembler(multi pass assembler)


What are the advantages of a hickory chair over a normal one?

There are many advantages and benefits of owning and using a hickory chair over a normal one. One of these advantages is that there is greater comfort available.


What is the Language programmer writes one mnemonic instruction for each machine level instruction?

It is an assembler language programmer