Proteus基于8086和8259中断实验.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
现在上微机接口技术课程,对于中断实验摸索的时间最长,终于做出效果如下: 功能为:每按一下键,cpu产生中断,在中断程序中让8255芯片A口灯循环熄灭。 ? 程序如下: code segment code assume cs:code,ds:data ?????? ;main proc far start:? ?MOV AX,DATA ?MOV DS,AX ?cli ?mov ax,0 ?mov es,ax ?mov si,60H*4?;设置中断向量 ?mov ax,offset int0 ?;stosw? ?mov es:[si],ax ?mov ax,cs?;seg int0 ?;stosw?; ?mov es:[si+2],ax ???;初始化8259 ??????? mov al ?mov dx,9000H ?out dx,al ? ?mov al,060h ?mov dx,9002h ?out dx,al ?mov al,1bh ?out dx,al ?????? MOV DX,9002h ??????? MOV AL,00H?????????????? ;OCW1,八个中断全部开放 ??????? OUT DX,AL ??????? ??????? MOV DX,9000h ??????? MOV AL,60H????????????? ;OCW2,非特殊EOI结束中断 ??????? OUT DX,AL ?;完成8259初始化 ??? MOV AL ??? MOV DX,8006H ??? OUT DX,AL ??? ?mov al,cnt ??????? mov dx,8000h ?out dx,al ?sti li:?;8086模型有问题,它取得的中断号是最后发到总线上的数据,并不是由8259发出的中断号 ??????? ;所以造成了要在这里执行EOI的假相,这三句与下面的指令效果是一样的 ? ???? ? ??????? MOV DX,9000H ??????? MOV AL,60h? ;如果改为其它值,将出错,因为只有60H有中断向量 ??????? OUT DX,AL ?? ?jmp li ??????? ;?ret ??????? ;main endp int0 proc ?cli ?mov al,cnt ?rol al,1 ?mov cnt,al ??????? mov dx,8000h ?out dx,al ? ?MOV DX,9000h?; ??????? MOV AL,60H??; ??????? OUT DX,AL ?sti ?iret int0 endp code ends DATA SEGMENT CNT DB 1 DATA ENDS end start

文档评论(0)

_______ + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档