Department of Electrical and Computer Engineering
The University of Texas at Austin
EE 306, Fall 2004
Problem Set 6 (Optional)
Yale N. Patt, Instructor
Siddharth Balwani, Linda
Bigelow, Tommy Buell, Jeremy Carrillo, Aamir Hasan,
Danny Lynch, Rustam Miftakhutdinov,
Veynu Narasiman, Vishal Parikh, Basit Sheikh, TAs
- Refer to Problem 9.13 on page 244 in the textbook.
to Problem 9.18 on page 247 in the textbook.
- What the defining characteristics of a stack? Give two
implementations of a stack and describe their differences.
zero-address machine is a stack-based machine where all operations are
done by using values stored on the operand stack. For this problem, you
may assume that its ISA allows the following operations:
- PUSH M - pushes the
value stored at memory location M onto the operand stack.
- POP M - pops the
operand stack and stores the value into memory location M.
- OP - Pops two values
off the operand stack and performs the binary operation OP on the two
values. The result is pushed back onto the operand stack.
Note: OP can be ADD or MUL
for the purposes of this problem.
1. Write the assembly language code for
calculating the expression:
x = (A * ( ( B *
C ) + D ) )
- In a zero-address
- In a three-address machine
like the LC-3b, but which can do memory to memory operations and also
has a MUL instruction.
2. Give an advantage and a disadvantage of
each of these machines.
- Refer to Problem 10.9 on page 284 in the textbook. Only do parts
(b) and (c).
the following possibilities for saving the return address of a subroutine:
- In a processor
- In a memory location
associated with the subroutine. A different memory location is used for
each different subroutine.
- On a stack.
Which of these possibilities
supports subroutine nesting, and which supports subroutine recursion (that is,
a subroutine that calls itself)?
the initiation of the interrupt service routine, the N, Z, and P condition
codes are saved on the stack. By means of a simple example show how
incorrect results would be generated if the condition codes were not
saved. Also, clearly describe the steps required for properly handling an
to Problem 10.12 on page 285 in the textbook.