8086与存储器

在这里插入图片描述
选中80H地址,允许CPU对接口的读操作。
在这里插入图片描述
选中0FFH端口,允许CPU对接口进行写操作。
在这里插入图片描述
选择一个范围F800H~FFFFH,其中,偶地址为#1,奇地址为#0;
在这里插入图片描述
27c128是一种16K8位的SRAM芯片,由14位地址线和8位数据线组成。两片27c128可扩展总容量至32KB 。其中U7片选择偶地址,U8片选择奇地址,组成16K16位的寄存器组。8086通过隐藏最后一个地址的方法,将一个字的大小扩展至16位,而每一个地址只有8位。
在这里插入图片描述
程序中将程序段XYZ的段地址存放在数据段寄存器ds中,再将XYZ的偏移地址存放在寄存器bx中,即ds:bx指向XYZ的首地址。用附加段寄存器es指向0FFFFH这一段基址,寄存器bx指向0,即从0FFFF0H这一位置开始写入。提取ds:bx中的数据写入es:bx中,每执行一次,偏移地址加2,指向下一偏移量。
在这里插入图片描述
同上一段代码,此次写入的段基址改为0F800H。
XYZ程序是通过ds:bx即0FFEEH:0000H存放的地址F80000H,而F8000H中存放的是ABC进而执行ABC。
ABC是系统程序,将此程序复制一份到0F8000H中,将0F8000H地址存放到0FFEE0H中,XYZ程序是通过0FFEEH指向0F8000H,再将XYZ程序复制一份到0FFFF0H中。

在这里插入图片描述
在此电路中,用D触发器充当80H端口。
在这里插入图片描述
在此电路中,用三态门充当0FFH端口。
在这里插入图片描述
CODE SEGMENT PUBLIC ‘CODE’
ASSUME CS:CODE
START:
;将系统的起始地址0F8000H存放到定义的双字单元0FFEEH
MOV AX,0FFEEH
MOV DS,AX ;定义ds指向段地址为0FFEEH
MOV BX,0
MOV AX,0
MOV WORD PTR [BX],AX ;将ds段中0偏移量的地址赋值为0
MOV WORD PTR [BX],AX ;将ds段中0偏移量的地址赋值为0
MOV AX,0F800H
INC BX ;bx的单元地址加一
INC BX ;bx的单元地址加一
MOV WORD PTR [BX],AX ;此时bx为2,将ds段中2偏移量的地址赋值为0F800H
;将启动跳转程序写到0FFFFH
MOV CX,10 ;循环10次
MOV AX,SEG XYZ
MOV DS,AX ;将xyz的段首地址存放S到ds中
MOV BX,OFFSET XYZ ;将xyz的偏移地址存放到bx中
MOV AX,0FFFFH
MOV ES,AX ;es段地址设置为0ffffH
MOV DI,0 ;es偏移量di为0
x1:MOV AX,WORD PTR [BX] ;把ds:[bx]位置的数据存放到ax
MOV ES:WORD PTR[DI],AX ;把ax中的数据存放到es:[di]中
ADD BX,2 ;ds段偏移量bx加2
ADD DI,2 ;es段偏移量di加2,继续循环,将ds:[bx]赋给es:[di]
LOOP X1
;将系统功能程序写入0F8000H(BIOS->EPROM)
MOV CX,10 ;循环10次
MOV AX,SEG ABC
MOV DS,AX ;将ABC的段首地址存放到ds中
MOV BX,OFFSET ABC ;将ABC的偏移地址存放到bx中
MOV AX,0F800H
MOV ES,AX ;es段地址设置为0f800H
MOV DI,0 ;es偏移量di为0
X2:MOV AX,WORD PTR [BX] ;把ds:[bx]位置的数据存放到ax
MOV ES:WORD PTR [DI],AX ;把ax中的数据存放到es:[di]中
ADD BX,2 ;ds段偏移量bx加2
ADD DI,2 ;es段偏移量di加2,继续循环,将ds:[bx]赋给es:[di]
LOOP X2
XYZ:MOV AX,0FFEEH
MOV DS,AX
MOV BX,0
JMP DWORD ptr [bx]
ABC:IN AL,0FFH
OUT 80H,AL
JMP ABC
ENDLESS:
JMP ENDLESS
CODE ENDS
END START

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值