8.3 Stack Organization Stack: A storage device that stores information in such a manner that the...

25
8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called last-in first-out (LIFO) list. Useful for compound arithmetic operations and nested subroutine calls.

Transcript of 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the...

Page 1: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

8.3 Stack Organization Stack: A storage device that stores

information in such a manner that the item stored last is the first item retrieved.

Also called last-in first-out (LIFO) list. Useful for compound arithmetic operations and nested subroutine calls.

Page 2: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

8.3 Stack Organization • Stack pointer (SP): A register that

holds the address of the top item in the stack. SP always points at the top item in the stack

• Push: Operation to insert an item into the stack.• Pop: Operation to retrieve an item from the stack.

Page 3: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

REGISTER STACK

• A stack can be organized as a collection of a finite number of registers.

Page 4: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

• In a 64-word stack, the stack pointer contains 6 bits.• The one-bit register FULL is set to 1 when the stack is full; EMPTY register is 1 when the stack is empty.• The data register DR holds the data to be written into or read from the stack.

REGISTER STACK

Page 5: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

InitializationSP 0, EMPTY 1, FULL 0PushSP SP + 1M[SP] DRIf (SP = 0) then (FULL 1) Note that SP becomes 0 after 63EMPTY 0

The following are the micro-operations associated with the stack

Page 6: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

DR M[SP]SP SP - 1If (SP = 0) then (EMPTY 1)FULL 0

Pop

The following are the micro-operations associated with the stack

Page 7: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

STACK OPERATIONSREVERSE POLISH NOTATION (postfix)

Reverse polish notation :is a postfix notation (places operators after operands)

(Example) Infix notation A + BReverse Polish notation AB+ also called postfix.

Page 8: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

STACK OPERATIONSREVERSE POLISH NOTATION (postfix)

A stack organization is very effective for evaluating arithmetic expressions

A * B + C * D (AB *)+(CD *) AB * CD * +

( 3 * 4 ) + ( 5 * 6 ) 34 * 56 * +

Page 9: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

STACK OPERATIONSREVERSE POLISH NOTATION (postfix)

n • Evaluation procedure:

n 1. Scan the expression from left to right.2. When an operator is reached, perform the operation with the two operands found on the left side of the operator.3. Replace the two operands and the operator by the result obtained from the operation.

n (Example) infix 3 * 4 + 5 * 6 = 42 postfix 3 4 * 5 6 * +

n 12 5 6 * +12 30 +42

Page 10: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

STACK OPERATIONSREVERSE POLISH NOTATION (postfix)

• Reverse Polish notation evaluation with a stack. Stack is the most efficient way for evaluating arithmetic expressions.

stack evaluation:Get valueIf value is data: push dataElse if value is operation: pop, pop evaluate and push.

Page 11: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

STACK OPERATIONSREVERSE POLISH NOTATION (postfix)

(Example) using stacks to do this. 3 * 4 + 5 * 6 = 42

=> 3 4 * 5 6 * +

Page 12: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

• The most common fields in instruction formats are:1. Mode field: Specifies the way the effective address is determined 2. Operation code: Specifies the operations to be performed.3. Address field: Designates a memory address or a processor

register

Mode Opcode Address

8.4 Instruction Formats

Page 13: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

8.4 Instruction Formats• Zero address instruction: Stack is used. Arithmetic

operation pops two operands from the stack and pushes the result.

• One address instructions: AC and memory. Since the accumulator always provides one operand, only one memory address needs to be specified.

•Two address instructions: Two address registers or two memory locations are specified, one for the final result.

•Three address instructions: Three address registers or memory locations are specified, one for the final result.

It is also called general address organization.

Page 14: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

Zero address instructions

Instruction: ADDPush and pop operations need to specify one address involved in data transfer.

Instruction: POP XEvaluate X = ( A + B ) * ( C + D )

Stack-organized computer does not use an address field for the instructions ADD, and MUL

PUSH, and POP instructions need an address field to specify the operand

Page 15: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

Zero address instructions

PUSH A

PUSH B

ADD

PUSH C

PUSH D

ADD

MUL

POP X TOSX

BADCTOS

DCTOS

DTOS

CTOS

BATOS

BTOS

ATOS

)()(

)(

)(

Advantages: No memory addresses needed during the operation.Disadvantages: results in longer program codes.

Page 16: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

One address instructions One address can be a register name or

memory address. SINGLE ACCUMULATOR ORGANIZATION

Since the accumulator always provides one operands, only one memory address needs to be specified.Instruction: ADD XMicrooperation: AC AC + M[X]

Page 17: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

One address instructions

LOAD A

ADD B

STORE T ACTM

BMACAC

AMAC

][

][

][

 All operations are done between the AC register and memory operand

Advantages: fewer bits are needed to specify the address.Disadvantages: results in writing long programs.

Page 18: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

Two address instructions • Assumes that the destination

address is the same as that of the first operand. Can be a memory address or a register name.

Instruction: ADD R1, R2Microoperation: R1 R1 + R2

Page 19: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

Two address instructions

MOV R1, A

MOV R2, B

ADD R1, R2

MOV X, R1 1][

211

][2

][1

RxM

RRR

BMR

AMR

most common in commercial computers

Each address fields specify either a processor register or a memory operand

Advantages: results in writing medium size programsDisadvantages: more bits are needed to specify two addresses.

Page 20: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

Three address organization

GENERAL REGISTER ORGANIZATION

• Three address instructions: Memory addresses for the two operands and one destination need to be specified.Instruction: ADD R1, R2, R3Microoperation: R1 R2 + R3

Advantages: results in writing short programsDisadvantages: more bits are needed to specify three addresses.

ADD R1, R2, R3 321 RRR

Page 21: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

EXAMPLE: Show how can the following operation be performed using:a- three address instructionb- two address instructionc- one address instructiond- zero address instructionX = (A + B) * (C + D)

Page 22: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

a-Three-address instructions (general register organization)

• ADD R1, A, B

• R1 M[A] + M[B]

• ADD R2, C, D

• R2 M[C] + M[D]

• MUL X, R1, R2

• M[X] R1 * R2

Page 23: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

b-Two-address instructions (general register organization)

• MOV R1, A • R1 M[A]• ADD R1, B • R1 R1 + M[B] • MOV R2, C • R2 M[C]• ADD R2, D • R2 R2 + M[D]• MOV X, R2 • M[X] R2 • MUL X, R1 • M[X] R1 * M[X]

Page 24: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

c- One-address instructions

• LOAD A • AC M[A] • ADD B • AC AC + M[B] • STORE T • M[T ] AC • LOAD C• AC M[C]• ADD D • AC AC + M[D]• MUL T • AC AC * M[T ] • STORE X • M[X] AC Store

Page 25: 8.3 Stack Organization Stack: A storage device that stores information in such a manner that the item stored last is the first item retrieved. Also called.

d- Zero-address instructions (stack organization)

• Push value • Else If operator is encountered: Pop, pop, operation,

push• Pop operand pop another operand then perform an

operation and push the result back into the stack.

• PUSH A TOS A Push• PUSH B TOS B• ADD TOS (A+B)• PUSH C TOS C• PUSH D TOS D• ADD TOS (C+D)• MUL TOS (C+D)*(A+B)• POP X M[X] TOS• (*TOS stands for top of stack).

Pop, pop, operation, push