求助计算机组成原理习题
在PHD-11机中,若把内存地址从600~1000(八进制)的存储区作为堆栈区,系统规定R6为堆栈指针,传送指令MOV,寻址方式支持堆栈操作,堆栈的生成方向从高地址开始依次进栈,试说明进栈和出栈的操作过程,并设从空栈开始,写出把R1和R2的内容进栈得得程序。
解:依题意,进栈时,R6先自减,然后再将数据写入(进栈);出栈时,先以 R6为地址,从内存堆栈中读出数据(出栈),然后 R6再自增。可编写出如下程序:
MOV #1002,R6;将立即数(八进制)1002 送R6.
MOV R1,–(R6);先(R6)-2 作为SP,再将R1 的数据存入堆栈的1000 存储单元.
MOV R2,–(R6);将R2 的数据存入堆栈的777存储单元
我现在不明白为什么是MOV #1002,R6,1002是指什么?(R6)-2,为什么要减二,最后为什么要将R2 的数据存入堆栈的777存储单元,请高手帮我解释一下吧,这个过程不太清楚,解释的越详细越好!谢谢了