NEW02第二章 微处理器part.pptVIP

  • 1
  • 0
  • 约1.63万字
  • 约 81页
  • 2019-10-17 发布于湖北
  • 举报
2.4.1 信息存放方式示意图 地址 内容 19H 0CH 1AH 1FH 1BH 01H 1CH 23H 1DH 74H 1EH ABH 1FH 41H 20H 42H 21H 43H 22H 44H 23H 45H 地址为1AH的字节数据1FH 1AH 1FH 地址为1BH的非规则字数据2301H 1BH 01H 1CH 23H 地址为1EH的规则字数据41ABH 1EH ABH 1FH 41H 首地址为1FH的字符串“ABCDE” 21H 43H 23H 45H 20H 42H 22H 44H 1FH 41H 地址为1AH的双字数据7423011FH; 如解释为指针数据,则段基址为7423H,偏移量为011FH 1AH 1FH 1BH 01H 1CH 23H 1DH 74H 2.4.2 8086奇偶存储器和总线连接 a)存储器地址空间分配 D7 ~D0 D15 ~D8 A0 A19 ~A1 DB AB b)存储体与总线的连接 地址 内容 内容 地址 00000H 00001H 00002H 00003H FFFFEH 偶地址存储体 512K*8 bit A0=0 奇地址存储体 512K*8 bit BHE=0 FFFFFH BHE D7 ~D0 奇地址存储体 SEL A18 ~ A0 D7 ~D0 偶地址存储体 SEL A18 ~ A0 存储单元的访问 A1-A19 D15—D8 D7—D0 SEL A0-A18 高位体(奇)512K D0-D7 SEL A0-A18 低位体(偶)512K D0-D7 A0 BHE A0 读/写的字节 0 0 高低两个字节 0 1 奇数地址的高位字节 1 0 偶数地址的低位字节 1 1 不传送 2.4.3 存储器分段 分段原因: 8086有20根地址线,但其内部可以表示的地址最多只能是16位。 为了能寻址1MB空间,8086对存储器进行逻辑分段,每个段最大为64KB,最小为16B(此时最多64K个段)。 连续 逻辑段 A段 B段 C段 D段 E段 00000H 10000H 20000H 30000H 40000H …… 实际(物理) 存储器 分离 完全重叠 部分重叠 2.4.4 存储器的逻辑地址和物理地址 加法器 8086物理地址PA的形成, 其中的16位偏移量也称为有效地址EA(出现在指令中) 段寄存器 15 0 16位偏移量 0 15 20位物理地址 0 19 段基址 1123H 偏移量 13H 段基址1124H 偏移量 03H 物理地址PA与逻辑地址LA的对应 存储单元 物理地址 11230H 11231H 11232H …… 1123FH 11240H 11241H 11242H 11243H 0000 存储器段操作 四个段寄存器(CS、DS、SS、ES)指示四个现行段的段地址。段和段之间可以相互分离、连接、部分重叠或完全重叠。 存储器操作 默认段基址 可使用段基址 偏移地址 取指令 CS — IP 堆栈操作 SS — SP 变量 DS CS、ES、SS 有效地址* 源数据串 DS CS、ES、SS SI 目的数据串 ES — DI 堆栈中的变量 SS — BP * 由指令给的出寻址方式所指定的地址 逻辑地址源 物理地址的生成 取指令时:由代码段寄存器CS,再加上IP的16位偏移量 堆栈操作时:由堆栈段寄存器SS,再加上SP所决定的16位偏移量 取数据:ES或DS再加寻址的偏移地址 程序所需的存储空间不超过64KB(包括程序、堆栈和数据),可使CS、SS、DS、ES相等 任务的程序、堆栈以及数据分别不超过64KB,CS,DS,SS可分别置初值,否则用子程序结构 2.4.5 8086系统堆栈操作 堆栈:后进先出的的一段内存 栈顶:永远由地址指针(SS:SP)指示 栈底:最初始的地址指针(SS:SP)指示处 堆栈深度:最大64KB 堆栈的作用:调用子程序(或转向中断服务程序)时,把断点及有关的寄存器、标志位及时正确地保存下来,并保证逐次正确返回 堆栈操作指令:入栈指令PUSH与出栈指令POP 入/出栈操作数:是一个字,而不是一个字节 子程序调用指令或中断响应自动完成时,恢复断点地址由返回指令(RET或IRET)完成 堆栈初始化操作 堆栈段起始

文档评论(0)

1亿VIP精品文档

相关文档