北京理工大学微机接口实验2.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北京理工大学微机接口实验2

微机接口实验报告 实验一 郑明治米克哈勒 目录 一. 实验目的 3 二. 实验基本执行过程………………………………………………3 三. 对素材的修改………………………………………………….3 四. 实验结果 5 五. 实验总结 5 保护模式下的中断处理 实验目的: 1.通过本实验了解、熟悉保护模式下的中断以及它的处理方式。 2.巩固微机接口课程学习的80386DX在保护模式下相关的知识点。 实验环境: DOSBOX 0.72 MASM611 实验基本执行过程 准备加载和设置在之前定义的各个段、门描述符 保存中断屏蔽寄存器(IMREG)值 保存IDTR,加载GDTR并切换到保护模式 初始化8255A,并设置中断屏蔽寄存器 程序循环等待,当有键盘和时钟中断时,调用中断服务程序显示字符 切回到实模式 对素材的修改: 1.将mov al, ; 开启定时器中断 out 021h, al ; 主8259, OCW1. call io_delay 改成:mov al, ; 开启定时器中断和键盘中断 out 021h, al ; 主8259, OCW1. call io_delay 这样可以同时响应定时器中断和键盘中断。 2.加入了回复中断屏蔽寄存器的代码 mov al, _SavedIMREG_S ; 恢复中断屏蔽寄存器(IMREG)的原值 out 0A1h, al ; call io_delay 3.在SpuriousHandler后加入键盘中断KeyboardHandler 代码如下: KeyboardHandler: in al, 60h cmp al, 1 jnz notEsc mov ecx, 1 iretd notEsc: inc byte ptr gs:[((80 * 1 + 70) * 2)] ; 屏幕第 1 行, 第 70 列。 mov al, 20h out 20h, al;发送EOI Iretd 4. 原来素材为: mov ebx,0 WaitLoop: cmp ebx, 100 jb WaitLoop 修改为: mov ebx,0 xor ecx,ecx WaitLoop: cmp ecx, 1 jnz WaitLoop 实验结果: 心得体会: 通过本次试验,对理论课上学习的中断向量和IDTR有了进一步的理解和体会。 通过这次试验,巩固了在实验三中对8255的理解,并有了新的理解。 了解了中断屏蔽寄存器的使用,中断屏蔽是通过OCW1来设置的。 对屏幕缓冲区000B8000H有点不理解。个人认为是这个缓冲区是系统设定的。只要把要输字符送到指定的屏幕位置,就能在屏幕上显示出该字符。计算位置是000B8000h + (y * 80 + x) * 2 其中x是列y行。 查了一些资料,了解了LGDT,LIDT等保护模式下系统控制的指令集。 3

文档评论(0)

yanpan1 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档