- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 微处理器 通过本章的学习,我们应该掌握以下内容: 8086/8088微处理器的结构 8086/8088在最小模式下部分引脚功能 理解8086的读写操作时序 熟练掌握8086的内部寄存器以及存储器组织 8086的内部寄存器 含14个16位寄存器,按功能可分为三类 8个通用寄存器 4个段寄存器 2个控制寄存器 通用寄存器 数据寄存器(AX,BX,CX,DX) 地址指针寄存器(SP,BP) 变址寄存器(SI,DI) 数据寄存器 8086含4个16位数据寄存器,它们又可分为8个8位寄存器,即: AX AH,AL BX BH,BL CX CH,CL DX DH,DL 数据寄存器特有的习惯用法 AX:累加器。所有I/O指令都通过AX与接口传送信息,中间运算结果也多放于AX中; BX:基址寄存器。在间接寻址中用于存放基地址; CX:计数寄存器。用于在循环或串操作指令中存放计数值; DX:数据寄存器。在间接寻址的I/O指令中存放 I/O端口地址;在32位乘除法运算时,存放高16位数。 地址指针寄存器 SP:堆栈指针寄存器,其内容为栈顶的偏移地址; BP:基址指针寄存器,常用于在访问内存时存放内存单元的偏移地址。 变址寄存器 SI:源变址寄存器 DI:目标变址寄存器 变址寄存器常用于指令的间接寻址或变址寻址。特别是在串操作指令中,用SI存放源操作数的偏移地址,而用DI存放目标操作数的偏移地址。 段寄存器 用于存放相应逻辑段的段基地址 CS:代码段寄存器。代码段存放指令代码 DS:数据段寄存器 ES:附加段寄存器 SS:堆栈段寄存器:指示堆栈区域的位置 Intel 8282 具有三态输出的 TTL电平锁存器 STB 电平锁存引脚 OE* 输出允许引脚 8286 8位双向缓冲器 控制端连接在一起, 低电平有效 可以双向导通 输出与输入同相 最小组态的总线形成 堆栈及堆栈段的使用 内存中一个按FIFO方式操作的特殊区域 每次压栈和退栈均以WORD为单位 SS存放堆栈段地址,SP存放段内偏移,SS:SP构成了堆栈指针 堆栈用于存放返回地址、过程参数或需要保护的数据 常用于响应中断或子程序调用 堆栈操作 (2)8086存储器的分段结构 由于8086/8088有20条地址线,可以寻址多达220(1M)字节,所以把1M字节的存储器分为任意数量的段,其中每一段最多可达寻址216(64K)字节。 8086CPU把1M字节的存储器空间划分为任意的一些存储段,一个存储段是存储器中可独立寻址的一个逻辑单位,也称逻辑段,每个段的长度为64K字节。 8086CPU中有四段寄存器:CS,DS,SS和ES,这四个段寄存器存放了CPU当前可以寻址的四个段的基址,也即可以从这四个段寄存器规定的逻辑段中存取指令代码和数据。一旦这四个段寄存器的内容被设定,就规定了CPU当前可寻址的段。 (3)8086存储器的逻辑地址和物理地址 存储器中的每个存储单元都可以用两个形式的地址来表示: 实际地址(或称物理地址)和逻辑地址。 实际地址:也称物理地址,是用唯一的20位二进制数所表示的地址,规定了1M字节存储体中某个具体单元的地址 。 逻辑地址在程序中使用,即段地址:偏移地址 。 (4)物理地址的形成 物理地址有两部分组成:段基址和偏移地址。 8086/8088CPU中有一个地址加法器,它将段寄存器提供的段地址自动乘以10H即左移4位,然后与16位的偏移地址相加,并锁存在物理地址锁存器中。如图所示。 物理地址=段基址 * 16 +偏移地址。 段基址:CS、DS、ES、SS。 偏移地址:IP、DI、SI、BP、SP等。 段寄存器值 偏移量 + 物理地址 16位 4位 16位 20位 存储器物理地址的计算方法 CS 0000 IP 代码段 DS或ES 0000 SI、DI或BX SS 0000 SP或BP 数据段 堆栈段 存储器 段寄存器和偏移地址寄存器组合关系 2 、堆栈 堆栈主要用于暂存数据和在过程调用或处理中断时暂存断点信息。 (1)堆栈的概念 堆栈是在存储器中开辟的一片数据存储区,这片存储区的一端固定,另一端活动,且只允许数据从活动端进出。采用“先进后出”的规则 。 (
文档评论(0)