What are the relative advantages of one?address, two?address, and three?address computer architectures?

What will be an ideal response?


From a programmer’s point of view the difference is between elegance and verbosity. For the purpose of this question we will assume that an address refers to a location in memory (I make this point because you could also regard a register as an address, for example, r3, r5, r12).

A three?address machine allows you to specify three operands in a single instruction, which lets you implement an operation like P = Q + R in the form ADD P,Q,R. Here, P, Q, and R are the three addresses of the three operands in memory (or they could be registers). Such an instruction would access memory three times during its execution phase.

A one?address machine specifies only one address, which means that all operations must take place between the contents of a memory location and an implicit internal register (sometimes called the accumulator). To execute P = Q + R we would force you to write something like


LDA P ;Load accumulator with P
ADD Q ;Add Q to P in the accumulator
STA R ;Store accumulator in


This is inelegant code and the accumulator is a bottleneck because you have to keep loading and storing as all data goes through the accumulator.

A two?address machine allows you to specify two operands, which means that one operand acts as a source that is overwritten by the result. For example, ADD P,Q adds P to the contents of Q. The old contents of Q are lost.

Although there are no three?memory?address machines, RISC processors like MIPS or ARM use a three?address instruction format and specify three registers, for example, ADD r1,r2,r3.

Most real computers fall into one of two categories; those that have three register addresses (like ARM and MIPS), and those that have two addresses (like Intel’s IA32 architecture). Three?address machines must also provide two memory access instructions, load and store, that transfer data between registers and memory.

Some two?address computers are called one and a half address machines because they use one memory address and one register address. You could say that such a machine is essentially a one?address machine with multiple accumulators (e.g., Intel’s IA32 series).

One?address machines are simple devices and are implemented as 8?bit microcontrollers in low?cost applications. This course does not deal with these devices.

The relative advantages of two? and three?address machines are debatable and both processor architectures continue to thrive. Some would argue that a three?address (RISC?style) processor should be faster than a two address machine because all data processing operations are applied to registers that have a far faster access time than memory.

Computer Science & Information Technology

You might also like to view...

By holding down the Alt key while selecting cells, you can select nonadjacent cells

Indicate whether the statement is true or false

Computer Science & Information Technology

Character strings are compared according to the place in a collating sequence for each character of the string.

Answer the following statement true (T) or false (F)

Computer Science & Information Technology

One problem with the Banker's Algorithm is that because the algorithm assumes the worst case, vital resources can be unavailable in order to guard against unsafe states.

Answer the following statement true (T) or false (F)

Computer Science & Information Technology

When converting analog waves to a series of numerical values, the higher the sampling rate, the more accurately the original wave can be recreated.

Answer the following statement true (T) or false (F)

Computer Science & Information Technology