微机原理

试说明入栈指令PUSH OPRD和出栈指令POP OPRD的操作过程。OPRD是16位操作数。

题目

试说明入栈指令PUSH OPRD和出栈指令POP OPRD的操作过程。OPRD是16位操作数。

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

执行入栈指令PUSH时,栈顶指针SP为:()。

A.SP←SP+1

B.SP←SP-1

C.SP←SP+2

D.SP←SP-2


正确答案:A

第2题:

下面是一个栈类的模板,其中push函数将元素i压入栈顶,pop函数弹出栈顶元素。栈初始为空,top值为0,栈顶元素在stack[top-1]中,在下面横线处填上适当的语句,完成栈类模板的定义。

template<class t>

class Tstack

{

enum{size=1000};

T stack[size]

int top;

public:

Tsack():top(0){}

void push(const T&i){

if(top<size)

stack[top++]=i;

}

T pop()

{

if(top==O)exit(1);//栈空时终止运行

retum【 】;

}

};


正确答案:stack[--top]
stack[--top] 解析:++/--运算符;注意栈顶元素在stack[top-1]中。

第3题:

●设将整数1、2、3、4依次进栈,只要出栈时栈非空,则可将出栈操作按任何次序夹入其中,请回答下述问题:

1.当入、出栈次序为Push (1) ,Pop (),Push (2) ,Push (3) ,Pop(),Push (4) ,Pop(),出栈的数字序列为何?(这里Push(i)表示i进栈,Pop()表示出栈) (26)

2.能否得到出栈序列1、4、2、3和1、4、3、2?答案为 (27) 。

3.请分析研究1、2、3、4的24种排列中, (28) 序列是可以通过相应的入、出栈操作得到的。

(26) A.1,3,4

B.1,4,2,3

C.1,4,3

D.3,4,1

(27) A.可以

B.不可以

C.不确定

D.随机获得

(28) A.1,3,2,4

B.4,2,3,1

C.2,4,1,3

D.3,1,4,2


正确答案:A,B,A
【解析】出栈序列为1、3、4。
序列1、4、2、3不可能得到。因为4和2之间隔了3,当4出栈后,栈顶元素是3,而2在3的下面。
根据栈的数学性质,n个元素的出栈序列数目恰好符合卡塔南数列,即

因此4个元素的出栈序列数为:


这14种出栈序列如下:
1234  1243  1324  1342  1432
2134  2143  2314  2341  2431
3214  3241  3421  4321

第4题:

某堆栈初始为空,符号PUSH和POP分别表示1次进栈操作和1次出栈操作。对于进栈序列a,b,c,d,e,经过PUSH, PUSH, POP, PUSH, POP, PUSH, PUSH时,得到的出栈序列是什么?


正确答案:得到的出栈序列是b,c

第5题:

设将整数1、2、3、4依次进栈,只要出栈时栈非空,则可将出栈操作按任何次序夹人其中;请回答下述问题:

1.当人、出栈次序为Push(1),Pop(),Push(2),Push(3),Pop(),Push(4),Pop(),出栈的数字序列为何?(这里Push(i)表示i进栈,Pop()表示出栈)(26)

2.能否得到出栈序列1、4、2、3和1、4、3、2?答案为(27)。

3.请分析研究1、2、3、4的24种排列中,(28)序列是可以通过相应的入、出栈操作得到的。

A.1,3,4

B.1,4,2,3

C.1,4,3

D.3,4,1


正确答案:A

第6题:

MRD指令称为()。

A.读栈指令

B.弹栈指令

C.压栈指令

D.出栈指令


参考答案:A

第7题:

若pllsh、pop分别表示入栈、出栈操作,初始栈为空且元素1、2、3依次进栈,则经过操作序列push、push、pop、pop、push、pop之后,得到的出栈序列为 ______。

A.321

B.213

C.231

D.123

A.

B.

C.

D.


正确答案:B

第8题:

若push、pop分别表示入栈、出栈操作,初始栈为空且元素1、2、3依次进栈,则经过操作序列push、push、pop、pop、push、pop之后,得到的出栈序列为(29)。

A.321

B.213

C.231

D.123


正确答案:B
解析:栈的运算特点为在同一端插入和删除元素,即先入后出,总是栈顶元素先出栈,新元素总是压在栈顶元素之上并成为栈顶元素。初始栈为空,如下图(a)所示。对于元素 1、2、3,依照操作序列push、push、pop、pop、push、pop,可以得到出栈序列213,其过程为:第一个push操作将元素1压入栈中,如下图(b)所示:第二个push操作将元素2压入栈中,如下图(c)所示:第一个pop将栈顶元素2弹出栈,新栈顶元素为1,如下图(d)所示;第二个pop将栈顶元素1弹出栈,导致栈空,如下图(e)所示:其后的push和pop分别将元素3压入和弹出栈,操作结果如下图(f)和(g)所示。

第9题:

●设push、pop分别表示入栈、出栈操作,若初始栈为空,对于元素序列a b c,

则操作序列push、pop、pop、push、push、pop (36)。

(36)

A.得到出栈序列为abc

B.得到出栈序列为bac

C.得到出栈序列为bca

D.是非法的操作序列


正确答案:D

第10题:

设有一个空栈,栈顶指针为1000H,现有输入序列为12345,push,push,pop,push,pop,push,push后,输出序列为(),栈顶指针是()。


正确答案:2,3;1003H

更多相关问题