微机原理课件(西电版)ppt35-1

上传人:jiups****uk12 文档编号:57215546 上传时间:2018-10-20 格式:PPT 页数:23 大小:189.50KB
返回 下载 相关 举报
微机原理课件(西电版)ppt35-1_第1页
第1页 / 共23页
微机原理课件(西电版)ppt35-1_第2页
第2页 / 共23页
微机原理课件(西电版)ppt35-1_第3页
第3页 / 共23页
微机原理课件(西电版)ppt35-1_第4页
第4页 / 共23页
微机原理课件(西电版)ppt35-1_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《微机原理课件(西电版)ppt35-1》由会员分享,可在线阅读,更多相关《微机原理课件(西电版)ppt35-1(23页珍藏版)》请在金锄头文库上搜索。

1、第5章 微型计算机与外设的数据传输,2,先验知识:存储器编址、IO编址和IO指令,3,10101011,11110001,01001101,在存储器里以字节为单位存取信息,系统为每个字节编一个地址(二进制数表示,书写格式为十六进制),称为存储器地址,存储的内容即为数据。,地址,内容,20位地址信息及存储的内容可以用十六进制简化书写,00000H,00001H,00002H,FFFFFH,8位二进制信息称一个字节,1. 8086的存储器编址,4,存储器地址的分段管理,8086/8088CPU有20条地址线,所以它可以在1MB的存储区内寻址,即可从00000HFFFFFH中任一地址中取出所需要的指

2、令和操作数。 存储器中数据的存储形式 存储器地址的分段,5,(1) 存储器中数据的存储形式,存储器以字节为单位编址,但存储区域的大小是不同的,可以是一个字节、二个字节(字)、四个字节(双字)、八个字节(4字)、十字节等。,比如:64H、5000H、40FF0002H、 2500889912345678H。,6,64H、5000H、40FF0002H、 2500889912345678H,这些数据的地址是什么? 它们在内存中如何存储?,7,64H、5000H、40FF0002H、 2500889912345678H,分别用它们的首字节地址作为数据的地址。 8位数据存储时,直接将字节放在相应的地址

3、所 对应的存储单元; 16位数据存储时,低字节在前,高字节在后(即低字节存入低地址,高字节存入高地址); 32位数据存储时:低字在前、高字在后(字中的低字节在前,高字节在后)。,思考:以上数据存储在00000H地址的形式,8,从CPU内部结构我们已知,CPU内部运算是16位的,与地址有关的寄存器也是16位的,故对地址的运算也只能是16位的,这样的话,对各种寻址方式的寻址范围,最多只能是64KB(216)!,在1MB空间如何寻址?即在16位字长的机器中,20位地址是如何形成的呢?这是8086/8088内存寻址的一个非常特殊和重要的问题。,(2) 存储器地址的分段,9,解决的办法采用存储器分段的办

4、法。,我们在寻址一个存储单元的时候,是根据一个具体的物理地址(20位),这个物理地址唯一的对应1MB中的一个字节单元。物理地址是由一个基本地址加上一个16位的偏移地址形成的。物理地址 = 段地址左移4位(乘16)+ 偏移地址 。,10,物理地址 = 段地址左移4位(乘16)+ 偏移地址 。,11,例:物理地址01051H的形成,15 0,16 位 段 地 址,+,16 位 偏 移 地 址,19 3 2 1 0,20 位 物 理 地 址,显然:每个存储单元只有唯一的物理地址。但它却可以由不同的段地址和不同的偏移地址组成。,(0000H),(1051H),(01051H),(0100H),(005

5、1H),12,基本地址,基本地址是指段地址,由CS,DS,SS,ES四个段寄存器之一提供。8086/8088规定,段不能起始任意地址,而必须从任一小段首址开始,小段从0址算起,每16字节为一小段,在1M的地址空间里,共有64K个小段,这些段地址的低4位均为0,所以段寄存器中的内容是物理地址的高16位。,13,偏移地址,偏移地址是根据指令的不同寻址方式给出的16位直接地址、或者由SP、BP、DI、SI等寄存器提供的、或经某种计算得到的16位地址值。这16位地址可寻址216=64KB空间。即整个内存划分为一个一个段,段内大小可达64K,偏移地址可实现段内寻址。,14,CS、DS、SS和其他寄存器组

6、合指向存储单元的示意图 :,15,代码段:存放当前正在运行的程序; 数据段:存放当前运行程序所用的数据,若程序中使用了串处理指令,则其源操作数也存放在数据段; 堆栈段:定义了堆栈的所在区域; 附加数据段:是一个辅助的数据段,也是串处理指令的目的操作数存放区。,16,除非专门指定,否则各段在存储器中的分配是由操作系统负责的。段的分配可以是每个段独立占用64K存储区,也可以重叠(指每个段区的大小允许根据实际需要来分配,而不一定要占用64K的最大空间),在8086/8088系统中,每次需产生一个20位的地址时,一个段寄存器被自动选择(与具体操作有关):取指令时:自动选择CS段寄存器,加上IP中偏移量

7、,计算得到存放指令的物理地址。堆栈操作时:自动选择SS段寄存器,加上SP中偏移量,计算得到栈读/写需要的物理地址。读/写操作数时:自动选择DS或ES段寄存器,加上16位偏移量,计算得到存放操作数的物理地址。,17,8086,存储空间,A19A16,AD15AD0,地址锁存器,WR、RD,ALE、BHE,D15D0,A19A0,00000H,FFFFFH,代码段,数据段,堆栈段,20000H,32000H,65400H,取指令,CS=2000H,IP=0100H,20100H,堆栈操作、读写操作数,18,2. 8086的I/O编址,端口接口中的寄存器。 端口地址接口中寄存器的地址。 一个接口中有

8、数据、状态、控制等多个寄存器,故有多个端口地址。 端口地址又叫端口号,用于寻址,不能重号,如同内存地址一样。 实际电路中可能一个寄存器有一个端口地址,也许一组寄存器对应一个端口地址。,19,80x86的I/O编址方式:I/O端口独立于内存单独编址; CPU在访问I/O端口时,即执行IN/OUT指令时,硬件上会产生RD和WR信号同时M/IO = 0; 8086CPU允许有65535(64K)个I/O端口,端口可以是8位的也可以是16位的 ; 指令系统中有访问8位、16位数据的I/O指令,端口地址也可以是8位或16位。,20,IO空间,内存空间,8086,1024K,64K,21,3.直接寻址的输

9、入/输出指令IN/OUT,格式: IN AL,n ;(n)送ALIN AX,n ;(n+1,n)送AX OUT n,AL ;AL送(n)OUT n,AX ;AX送(n+1,n) 说明:n为直接端口地址,是一个8位地址。(n)表示n号端口寄存器内容,8位。n+1,n为相邻两个端口地址,(n+1,n)表示n+1和n两端口寄存器内容,16位。,22,DX间接寻址的IN/OUT指令,格式:IN AL,DX ;(DX)送ALIN AX,DX ;(DX)+1,(DX)送AX OUT DX,AL ;AL送(DX)OUT DX,AX ;AX送(DX)+1,(DX) 说明:DX是间址寄存器,其内容是端口地址,其地址值可以是16位的。注意这里间址寄存器只能用DX,不可以用其它寄存器。 综上我们可以看到:如果端口地址是8位的,用直接寻址或DX间接寻址都可以;但如果端口地址是16位的,则必须用DX间接寻址。16位输入输出指令中的端口地址只能取偶数。,23,输入输出指令注意点: 只能用累加器作为执行输入输出的机构 寻址范围:直接输入输出指令为0255间接输入输出指令为065 535。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号