Proteus基于8086和8259中断实验

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

现在上微机接口技术课程,对于中断实验摸索的时间最长,终于做出效果如下:功能为:每按一下键,cpu产生中断,在中断程序中让8255芯片A口灯循环熄灭。程序如下:codesegment'code'assumecs:code,ds:data;mainprocfarstart:MOVAX,DATAMOVDS,AXclimovax,0moves,axmovsi,60H*4;设置中断向量movax,offsetint0;stoswmoves:[si],axmovax,cs;segint0;stosw;moves:[si+2],ax;初始化8259moval,00010011bmovdx,9000Houtdx,almoval,060hmovdx,9002houtdx,almoval,1bhoutdx,alMOVDX,9002hMOVAL,00H;OCW1,八个中断全部开放OUTDX,ALMOVDX,9000hMOVAL,60H;OCW2,非特殊EOI结束中断OUTDX,AL;完成8259初始化MOVAL,10000000BMOVDX,8006HOUTDX,ALmoval,cntmovdx,8000houtdx,alstili:;8086模型有问题,它取得的中断号是最后发到总线上的数据,并不是由8259发出的中断号;所以造成了要在这里执行EOI的假相,这三句与下面的指令效果是一样的MOVDX,9000HMOVAL,60h;如果改为其它值,将出错,因为只有60H有中断向量OUTDX,ALjmpli;ret;mainendpint0procclimoval,cntrolal,1movcnt,almovdx,8000houtdx,alMOVDX,9000h;MOVAL,60H;OUTDX,ALstiiretint0endpcodeendsDATASEGMENTCNTDB1DATAENDSendstart

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功