嗨,我在这种情况下遇到了麻烦: 考虑具有以下硬件体系结构的处理器。有一个存储器堆栈和一个循环计数器寄存器。提供以下说明: PUSH N –将值N压入堆栈。 (2个周期) POP –从堆栈中将一个值弹出到循环计数器寄存器(LCR)中(2个周期) SWAP –交换堆栈中的前两个值。 (1个周期) ADD –将堆栈顶部的两个值相加,并用总和替换堆栈顶部。例如,如果前2个值分别为5和4,则执行ADD将导致堆栈顶部的9和4。 (4个周期) OUTPUT –从堆栈输出最高值。它保留在堆栈中。 (10个循环) LOOP N –递减LCR,如果它不是零,则跳到位置N(4个周期) END –结束例程执行 当1和1是堆栈中的前两个值时,以下例程会做什么?如果他们是3和4怎么办? 1 – POP 2 –按钮0 3 –添加 4 –循环3 5 –输出 6 –结束
现在,我认为对于具有1和1的堆栈,最终结果将为1;对于具有3和4的堆栈,最终结果将为1,但显然不是因为每条指令的循环次数有限。我在这里想念什么?