您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 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
本文标题:Proteus基于8086和8259中断实验
链接地址:https://www.777doc.com/doc-5030550 .html