伢儿哦,寻址方式怎么这么多,快搞烦了。
还有个有意思的现象,不晓得是不是CSDN的虚拟用户,最近竟然有人关注这几篇笔记…之所以设置成对粉丝可见,主要是我觉得完全公开吧,怕别人看到后嫌弃,不公开吧,我又安奈不住内心那蠢蠢欲动的表现欲,果真是拧巴。这篇先开个头,这会儿突然不想整理了,去豆瓣逛逛……
相对寻址
相对当前的PC值,有效地址是由PC的内容加上形式地址
EA = (PC) + A
形式地址A相当于当前指令的位移量(可正可负,补码)
eg:
堆栈寻址
在堆栈型计算机当中一般采用硬堆栈的方式,即采用两个或者三个甚至更多的寄存器作为栈顶,栈底部分依然是在内存当中。如进行加法操作时,两个操作数都来自栈顶,运行的结果保存栈顶(寄存器)。
软堆栈是指定的一段内存空间。
先进后出,栈顶的地址由SP(寄存器)指出。
通常情况下,堆栈的栈底是地址最高的,栈顶是最低的,每进栈一个编址单位的数据,SP的位置减一,栈顶的位置向上升起;如果是出栈操作,SP的内容会加一 ,栈顶进行下移
进栈: (SP)- 1 --> SP
出栈:(SP) + 1 --> SP