3.假設指令PUSH X動作是將暫存器X的內容放入STACK中,指令POP X動作是從STACK中
取出一個數目放至暫存器X中,X可為任意暫存器,若暫存器A,B,C,D的內容分別是
18,19,20,21時,依序執行PUSH A,PUSH B,PUSH C,PUSH D,PUSH D,PUSH C,PUSH B,PUSH A,PUSH B後,暫存器A的內容將為
(A)18 (B)19 (C)20 (D)21
4.承3,現在假設指令PUTQ X動作是將暫存器X的內容放入QUEUE,指令GETQ X 是貯
列中取出一個PUTQ A,PUTQ B,GETQ C,GETQ D,PUTQ C,PUTQB,GETQ A,GETQ B後 ,暫存器A的內容將為(A)18 (B)19 (C)20 (D)21
第三題我是會了,但第四題,還是看不太懂怎解,求解QQ
STACK 的特性是"後進先出"
QUEUE 的特性是"先進先出"
PUTQ A, QUEUE 內部為
18
PUTQ B, QUEUE 內部為
18
19
GETQ C, QUEUE 內部為
19
此時 C = 18
GETQ D, QUEUE 內部為
空
此時 D = 19
到這一步簡單來說就是把 C = A, D = B
PUTQ C, QUEUE 內部為
18
PUTQ B, QUEUE 內部為
18
19
GETQ A, QUEUE 內部為
19
此時 A = 18
GETQ B QUEUE 內部為
空
此時 B = 19
到這一步簡單來說就是把 A = C, B = B
所以暫存器 A 的值依然是 18
PS: 第三題全部都是 PUSH,A 的內容永遠都是 18 吧...
佇列的特性是先進先出
A B C D
18 19 20 21
QUEUE
----------
<--
----------
PUTQ A,PUTQ B
A B C D
18 19 20 21
QUEUE
----------
18 19
----------
GETQ C,GETQ D
A B C D
18 19 18 19
QUEUE
----------
----------
PUTQ C,PUTQB
A B C D
18 19 18 19
QUEUE
----------
18 19
----------
GETQ A,GETQ B
A B C D
18 19 18 19
QUEUE
----------
----------
暫存器 A 的內容為 18