How ORG statement processed in two-pass assembly scheme, Computer Engineering

Assignment Help:

Can the operand expression in an ORG statement contains forward references? If so, outline how the statement can be processed in a two-pass assembly scheme.

ORG that is origin is an assembler directive that

  • Indirectly assign values to symbols
  • Reset the location counter to the given value-ORG value
  • Value can be: other symbol, constant or expression
  • No forward-reference

Assemblers scan the source program, producing machine instructions. Occasionally, the assembler reaches a reference to a variable that has not yet been explained. It is referred to as a forward reference problem. This is resolved in a two-pass assembler as given here:

In the first pass, the assembler simple firstly reads the source file, counting-up the number of locations as each instruction will take, and makes a symbol table in memory which lists all the defined variables cross-referenced to their connected memory address. In the second pass, the assembler substitute's opcodes for the mnemonics and names of variable are replaced by the memory locations acquired from the symbol table.

Consider the illustrated program

1216_ORG statement.png

On the first pass, the ORG statement puts the location counter to $800. Therefore the label N has the value $800, the label COLUMN has the value $802, the label M has the value $801 and the label ODD has the value $834. Hence the instruction CLR M will get three bytes, the instruction LDAB N will get three bytes and same forth. Likewise, we see that the first byte of instruction we observe that the first byte of instruction

LOOP:   LDDA 1, X+

IT will be at location $872. Therefore the symbolic address LOOP contain the value $872 and so on. In this continuing way, we come to

BPL     JUMP

Such program searches the array COLUMN seem for odd, negative, one-byte numbers, that then are stored in array ODD. The length of COLUMN is N and the length of ODD is M, that the program computes. We do not know the second byte of such instruction since we do not know the value of the address JUMP still. (It is termed as a forward reference, by using a label whose value is not still known.) Conversely, we can leave this second byte undetermined and proceed till we see that the machine code for DBNE is put in location $87f, therefore giving JUMP the value $87f.

If we continue our first pass downward then we allocate three bytes for DBNE B,LOQP.

We do not get this instruction's offset still, even if we already know the value of LOOP.

Scanning by the program again, that is the second pass, we can fill in each bytes, including those not found the first time through, for the instructions as BPL JUMP, BEQ JUMP and DBNE B,LOOP. Now, all object code can be produced.


Related Discussions:- How ORG statement processed in two-pass assembly scheme

Message passing programme development environment, In a multicomputer syste...

In a multicomputer system the computational load amid different processors should be balanced.  To pass information between different nodes message passing technique is used. The p

How many octets does smallest possible ipv6 datagram contain, How many Octe...

How many Octets does the smallest possible IPV6 datagram contain? The maximum size of an Ipv6 datagram is 65575 bytes, with the 0 bytes Ipv6 header. Ipv6 also describe a minim

Explain a macro, Explain a macro Macro is a preprocessor directive, als...

Explain a macro Macro is a preprocessor directive, also called as macro definition takes the following general form:  #define identifier string

Application of Theory of computation in DBMS, Sir/Mam, I want to know the a...

Sir/Mam, I want to know the application of Theory of computation in DBMS

Major problems associated in writing with cache memories, Q. Major problems...

Q. Major problems associated in writing with cache memories? The data in main and cache memory can be written by processors or I/O devices. The major problems associated in wri

What is linear addressing mode, What is Linear Addressing Mode. Ans. L...

What is Linear Addressing Mode. Ans. Linear Addressing: Addressing is the procedure of selecting one of the cells in a memory to be written in or to be read from. So as to fa

What do you mean by underflow and overflow of data, What do you mean by und...

What do you mean by underflow and overflow of data? Underflow and overflow of data: When the value of the variable is either too long or too small for the data type to hold,

Find out the correction to be applied in decimal adder, The correction to b...

The correction to be applied in decimal adder to the generated sum is ? Ans. 00110 is the generated sum when the correction to be applied in decimal adder. While the 4 bit su

Hard-disk acquisition, Problem (a) Forensic methodology consists of t...

Problem (a) Forensic methodology consists of three phases. Briefly explian these three phases. (b) Sometimes it's best not to perform hard-disk acquisition. Provide two

Is dos a real time os, DOS is not a RTOS (real time Operating system), thou...

DOS is not a RTOS (real time Operating system), though MS DOS can be used with certain APIs to attain the RTOS functionality. For example, the RT Kernel (Real Time Kernel) which ca

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd