在8086系统中,用2K×8b的SRAM芯片(如Intel 6116)构成8KB的存储器系统,要求: (1)存储器的地址范围是10000H~11FFFH; (2)编写程序对存储器交替写入55H和AAH。用proteus
时间: 2024-12-15 16:22:19 浏览: 44
在8086系统中,使用2K×8位的SRAM芯片Intel 6116构成8KB内存系统,按照您的需求可以分为以下几个步骤:
1. **理解地址映射**:
Intel 6116有4片这样的芯片组成8KB内存。每片芯片提供1K字节(2^11 = 2048字节)。因此,地址10000H到11FFFH对应于4片芯片的低端地址,即第一片芯片从0000H到FFFFH。
2. **设计连接**:
- 将这四片Intel 6116芯片并联起来,使得地址线(A0~A10)能够依次访问每个芯片的不同区域。
- 数据线需要全部连接,以便读写操作。考虑到8086的数据宽度是8位,所以D0~D7分别对应每片芯片的最低8位。
3. **编程示例**(假设采用汇编语言):
```assembly
; 定义内存段寄存器DS
MOV AX, 10000H ; 设置DS为起始地址,指向第一块内存
MOV DS, AX
WRITE_LOOP:
MOV SI, 0 ; 指针从内存开始
MOV CX, 2048 ; 写2048次,每次写入一个字节
XOR AL, AL ; 清零AL,用于写入55H或AAH
JMP WRITE_55H ; 跳转到写55H的部分,第一次执行写AAH
WRITE_55H:
OUT [SI], 55H ; 写入55H
INC SI ; 指针加一
LOOP_WRITE_55H:
WRITE_AAH:
OUT [SI], AAH ; 写入AAH
INC SI ; 指针加一
LOOP_WRITE_AAH:
LOOP WRITE_LOOP ; 如果CX未减至0,则回到开始位置继续写入
RET ; 结束函数
```
4. **在Proteus模拟**:
- 使用 Proteus 的8086模块或模拟工具,设置内存映射,并将上述汇编代码连接到合适的I/O端口上,模拟内存的交替写入过程。
- 检查内存的实际内容,确保在指定地址范围内交替出现了55H和AAH。
阅读全文