预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共17页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

3.38086/8088存储器和I/O组织 3.3.18086/8088存储器组织 1.存储器组织 8086/8088微处理器有20条地址线,可以配置1MB的内存储器。存储空间都按8位(即字节)进行组织,每个存储单元存储一个字节数据,若存放“字”数据(16位),则存放在相邻两个存储单元中,高字节存放在高地址单元,低字节存放在低地址单元。每个存储单元都有一个20位的地址,这1M个存储单元对应的地址为00000HFFFFFH,如图3.10所示。78H高位(奇地址)库地址总线A19A1可同时对高、低位库的存储单元寻址,A0和BHE用于对库的选择。 当A0=0时,选择偶数地址的低位库; 当BHE=0时,选择奇数地址的高位库; 当两者均为0时,则同时选中高低位库。 需注意的是,对于规则字(从偶数地址开始存放的字)的读/写操作只需一个总线周期,而非规则字(从奇数地址开始存放的字)的读/写操作需两个总线周期。图3.14从8086存储器的偶数和奇数地址读字节和字 读偶地址单元中的字节;(b)读奇地址单元中的字节; (c)读偶地址单元中的字;(d)读奇地址单元中的字A段3.逻辑地址和物理地址 ⑴逻辑地址:由段地址(逻辑段起始地址的高16位)和偏移地址(16位)表示的存储单元的地址称为逻辑地址,记为: 段地址∶偏移地址 ⑵物理地址:由CPU内部总线接口单元BIU中的地址加法器根据逻辑地址产生的20位存储单元地址称为物理地址。如图3.7所示。∑逻辑段的分配物理地址和逻辑地址的转换对于任何一个物理地址来说,可以唯一被包含在一个逻辑段中,也可以包含在多个重叠的逻辑段中,只要能得到它所在段的首地址和段内的相对地址,就可以对它进行访问。即一个物理地址可以对应多个逻辑地址。4.堆栈操作 8086/8088系统中的堆栈使用段定义语句在存储器中定义的一个堆栈段,和其它逻辑段一样,它可以在1M字节的存储空间中浮动,其容量可达64KB,这是一个具有“先进后出”特性的存储区域,且属于向下生长的堆栈。 堆栈由SS和SP来寻址。SS给出堆栈段的段地址,而SP给出当前栈顶(偏移地址),即指出从段地址到栈顶的偏移量。若已知当前SS=1050H,SP=0008H,AX=1234H,则8086系统中堆栈的入栈和出栈操作如下图所示。 3.3.28086/8088I/O组织 8086/8088系统和外部设备之间是通过I/O接口电路来联系的。每个I/O接口都有一个或几个端口。在微机系统中每个端口分配一个地址号,称为端口地址。一个端口通常为I/O接口电路内部的一个寄存器或一组寄存器。 8086/8088CPU用地址总线的低16位作为对8位I/O端口的寻址线,所以8086/8088系统可访问的8位I/O端口有65536(64K)个。两个编号相邻的8位端口可以组成一个16位的端口。例:设(SS)=3300H,(SP)=0100H。执行下列程序段后, (AX)=?,(BX)=?,(CX)=?, (SS)=?,(SP)=?。 MOV AX, 1234H MOV BX, 4321H MOV CX, 1000H PUSH AX PUSH BX PUSH CX POPBX POPAX POPCX PUSHDX8086CPU对I/O设备的读写与对存储器的读写操作类似。当CPU与偶地址的I/O设备实现16位数据的存取操作时,可在一个总线周期内完成;当CPU与奇地址的I/O设备实现16位数据的存取操作时,要占用两个总线周期才能完成。