第三课主存储器和堆栈Word格式.docx

上传人:b****2 文档编号:3948847 上传时间:2023-05-02 格式:DOCX 页数:4 大小:38.04KB
下载 相关 举报
第三课主存储器和堆栈Word格式.docx_第1页
第1页 / 共4页
第三课主存储器和堆栈Word格式.docx_第2页
第2页 / 共4页
第三课主存储器和堆栈Word格式.docx_第3页
第3页 / 共4页
第三课主存储器和堆栈Word格式.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

第三课主存储器和堆栈Word格式.docx

《第三课主存储器和堆栈Word格式.docx》由会员分享,可在线阅读,更多相关《第三课主存储器和堆栈Word格式.docx(4页珍藏版)》请在冰点文库上搜索。

第三课主存储器和堆栈Word格式.docx

一个寄存器保存下一条指令的内存地址,CPU使用该信息获取下一条的指令,获取一条指令后,CPU在另一个寄存器中保存该指令并将第一个寄存器的值更新为下一条指令的地址。

CPU只能理解有限的指令。

还有,这些指令是相当具体的,其中许多指令要求计算机将一个数从一个位置移动到另一个位置,例如,从内存单元中移动到寄存器。

存储单位每8位组成一个字节,相邻的两个字节又可以组成一个字。

假设内存容量为1M字节,则它的最低地址为00000H,最高地址为0FFFFFH。

由于字是由2个相邻的字节组成的,因而规定字地址由2个字节地址中较小的一个确定。

这样一来,存放在主存中的程序和数据一律按照物理地址存取。

堆栈

堆栈中数据遵循一个原则‘先进后出’。

堆栈中的数据也称之为元素或者栈项,数据进栈称为‘压栈’,出栈称之为‘弹出’。

8086允许用户建立自己的字堆栈,最大可达64K,其存储区位置由堆栈段寄存器SS给定,并固定采用SP作指针,即SP的内容为栈顶相对于SS的偏移地址。

空栈时,SP指向堆栈段的最高地址也就是栈底,存入数据时栈顶均由高地址向低地址变化。

往堆栈中存入数据必须采用专门的指令进行,而且只能是字操作。

进栈指令PUSH

语句格式:

PUSH源操作数

功能:

将寄存器、存储单元或者存储器中的一个字压入堆栈中。

例如:

在执行指令前AX=04F8H,SP=1000H

执行指令:

PUSHAX

指令执行的操作:

SP-2=1000H-2=0FFEH

执行结束后,堆栈段中偏移地址0FFEH中的内容为04F8H。

出栈指令POP

指令格式:

POP目的操作数

将栈顶元素弹出送至某一个寄存器、存储单元或者段寄存器(代码段CS除外)

执行前:

BX=1111H

POPBX

BX=04F8H,SP+2=0FFEH+2=1000H

除了PUSH和POP指令之外,如果其他的指令要访问堆栈时,只能通过基址寄存器BP进行。

存储器物理地址的形成

SPBPSIDIIP等

为了用16位的来表示20位的地址想出的方案:

将1M字节的存储器按64K字节分段,设置四个段寄存器CS、DS、SS和ES用来保存当前可使用段的段首址。

下图就是物理地址的形成方式

由于只设置了4个段寄存器,那么CPU在当前同一时刻只能同时最多访问4个段,即当前代码段CS、当前数据段DS、当前堆栈段SS和当前附加数据段ES。

如果将当前各段的首址用符号表示,设代码段首址是CODE、堆栈段首址是STACK,数据段首址为DATA1,附加数据段首址DATA2。

代码段CS

当前代码段在主存中的起始地址是由代码段寄存器CS确定,指令指示器IP保存下一条将要取出指令相对于CS的偏移地址,如果要取出这条指令执行,它的物理地址就是:

CS(左移四位)+IP(偏移地址)

在当前代码段中的大小为32K字节,CS=0C018H,IP=7FFFH

物理地址=0C018(左移四位)+7FFFH=0C0187H

堆栈段SS

栈顶的物理位置为:

SS(左移四位)+SP

其它指令时,其物理地址为SS:

(左移四位)+BP

数据段DS和附加数据段ES

当要访问数据段中的某一个变量时,该变量的物理地址就是

DS或ES(左移四位)+该变量的偏移地址。

段的分配

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2