8086与矢量中断电路

关于代码前半部分的具体内容就不再多说,这里只阐述代码的作用和功能。
0ffffH存放一个start_pro程序,跳转到ffee0H所指向的f8000H单元,运行f8000H里的程序。F8000H存放bios_pro程序,F9000H存放sub_pro程序。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面的多个或门电路是选择08000H~08FFFH中的奇地址和偶地址。配合着上面的两个4K8位的存储器使用,共8KB。可以用作4K16位的存储器(AB0和 B H E BHE BHE同时选中),也可以用作8K8位的存储器(AB0选中时为偶地址, B H E BHE BHE选中时为奇地址)。
在这里插入图片描述
图片下面的与门电路是选择0F8000H~0FFFFFH之间的地址,连接的是两片27c128芯片。一片是16K
8位。两个芯片可扩展至16K*16位。这一组存储器没有最低位AB0,不能选择奇地址和偶地址,只能将其合为一个整体看做为16位大小。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
先用八位或电路和74ls138电路选出80H和81H、82H和83H、84H和85H这三个地址,再将其具体拆分开。用 C S 0 CS0 CS0表示80H端口, C S 1 CS1 CS1表示81H端口, C S 2 CS2 CS2表示82H端口, C S 3 CS3 CS3表示83H端口, C S 6 CS6 CS6表示84H端口, C S 7 CS7 CS7表示85H端口。
在这里插入图片描述
在这里插入图片描述
申请堆栈空间供中断使用。将74hc245产生的中断类型号向类型30h号矢量空间写入0f9000h。即当中断产生时,会产生中断类型号,其空间中会有中断程序的地址0f9000H。初始化设备,使80H端口有效,点亮LED灯,测试是否可用,再使82H端口有效,熄灭LED灯。对日志进行初始化,设置日志的位置0ffe00H,并赋值为0。循环等待中断。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
报警时,通过作图的80H端口有效,点亮LED灯。按下右图的按钮,将81H端口中的值置为0,再将81H中的值赋值给82H,82H有效。左图D触发器s端有效,LED灯灭。
.model small .386 .stack .data .code .startup ;将系统功能程序【BIOS】入口地址0f8000h写入ROM空间中自定义的系统功能程序起始入口地址的存放位置0ffee0h【位置用(DS):(BX)表示】 mov ax,0ffeeh mov ds,ax mov bx,0 ;用(DS):(BX)表示位置0ffee0h mov ax,0 mov word ptr [bx],ax mov word ptr [bx],ax ;写入BIOS入口地址0f8000h的低字00H mov ax,0f800h inc bx inc bx mov word ptr [bx],ax ;写入BIOS入口地址0f8000h的高字0f8H ;将启动转移程序代码【标号start_pro位置用(DS):(BX)表示】写入ROM空间中系统启动地址【位置0ffff0h用(DS):(BX)表示】 mov cx,10 mov ax,seg start_pro mov ds,ax mov bx,offset start_pro mov ax,0ffffh mov es,ax mov di,0 x1:mov ax,word ptr [bx] mov es:word ptr [di],ax mov es:word ptr [di],ax inc bx inc bx inc di inc di loop x1
;将系统功能程序【BIOS】代码【标号bios_pro位置用(DS):(BX)表示】写入ROM空间中【BIOS】入口地址【位置0f8000h用(DS):(BX)表示】 mov cx,biospro_lan mov ax,seg bios_pro mov ds,ax mov bx,offset bios_pro mov ax,0f800h mov es,ax mov di,0 x2:mov ax,word ptr [bx] mov es:word ptr [di],ax mov es:word ptr [di],ax inc bx inc bx inc di inc di loop x2 ;将子程序代码入口安排在0f9000h mov cx,subpro_lan mov ax,seg sub_pro mov ds,ax mov bx,offset sub_pro mov ax,0f900h mov es,ax mov di,0 x9:mov ax,word ptr [bx] mov es:word ptr [di],ax mov es:word ptr [di],ax inc bx inc bx inc di inc di loop x9
;启动转移程序 start_pro: mov ax,0ffeeh mov ds,ax mov bx,0 jmp dword ptr [bx] ;转移到系统功能程序【BIOS】的入口0f8000h

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值