- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
哈工大汇编实验
计算机科学与技术学院-汇编语言程序设计 * 汇编语言程序设计 实验三 一、VC与ASM联合编程 实验二的程序,请重新按如下要求设计 主程序用C语言设计,文件名为 BUFC.C 子程序及宏用汇编语言设计,文件名为BUFASM.ASM bool iq(char *buf,int *ip,char chr); bool oq(char *buf,int *op,char *chr); 请跟踪程序,将C语言调用iq、oq前后的反汇编语句拷屏为CASM1.JPG、CASM2.JPG。 。进入IQ后的反汇编语句、当前寄存器、堆栈(保护完现场)内容,拷屏为CASM3.JPG。退出IQ前的反汇编语句、当前寄存器、堆栈(恢复现场后)内容,拷屏为CASM4.JPG。对OQ函数同样生成CASM5.JPG、CASM6.JPG 全部用C语言设计,文件名buffer.c,同样在IQ、OQ进入及退出时拷屏为CASM7-12.JPG。 二、中断系统设计与编程 中断的概念 中断的类型:软中断、硬中断 硬中断的工作过程 外设、接口、中断控制器、CPU、BIOS、操作系统、你的主程序干什么、中断处理子程序干什么。 硬中断的编程 主程序:保护IMR、保护老中断向量、 CLI、本级中断允许、设置新中断向量、STI======正常处理,可以响应中断,可根据中断处理的结果进行分析、判断等等=======CLI、恢复老向量、恢复老IMR、STI,主程序结束返回操作系统 子程序:STI(允许更高优先级的中断请求)、现场保护、中断事件的处理(IN、OUT等)、发中断结束(EOI)命令 、现场恢复、中断返回IRET 观察BIOS对时钟中断的响应 BIOS数据区中时钟中断的观察。 时钟中断程序的验证、理解分析 跟踪、记录中断发生时当前的堆栈,拷屏为INT1.JPG 键盘中断的验证 BIOS数据区中键盘缓冲区的观察、分析 键盘中断处理程序的验证、理解分析 跟踪、记录中断发生时当前的堆栈,拷屏为INT2.JPG 运行程序、按顺序记录0、1、a、z、空格、回车、四个方向键、F1-F10等的扫描码,拷屏INT3.JPG 时钟中断:在内存40:6C开始的4个字节(DWORD)保存了日时钟中断计数,半夜0(12)点时为0,每发生一次时钟中断,就会执行BIOS程序中时钟中断处理子程序(8号中断向量)INT 8,使得此DWORD加1。并为其他设备提供定时或计数服务。同时调用int 1c。因为INT8 太重要了,不建议修改。每秒中断18.2次 键盘缓冲区是BIOS程序中键盘中断处理子程序(9号中断向量)INT 9 所使用的。循环队列在内存40:1E处开始的32个字节。共能保存16个按键的ASCII+扫描码。队列头指针40:1A,尾指针40:1C。40:17与40:18保存了控制键的状态:左右shift、ctrl、alt、Numlk、CapsLk、ScrLk、Insert、SysRq、suspend等 中断过程 外设,通过器械等产生机械或光电等模拟信号==中断请求。 外设对应的接口,把此模拟信号转换成数字信号,并产生所规定的中断请求信号(边沿触发、或电平触发) 中断控制器:接受接口申请,进行中断信号锁存、检查中断屏蔽、中断排队、中断判优、向CPU发中断请求,等待,接受CPU响应、清除锁存的中断请求信号、向CPU提供中断向量号、设置正在为本中断进行服务的标志。 CPU:在下一条指令执行前,检查INT管脚,检查IF标志,接受中断请求,给中断响应信号。接受(读取)中断向量号n,执行中断处理子程序(相当于执行int n) Pushf (断点信息为 FR IP CS) CLI (在中断处理子程序中不允许其他可屏蔽中断) Push cs Push ip 0:[n*4+2]=CS 0:[n*4]=IP 以CS:IP执行 jmp cs:ip BIOS 中断向量的管理机制:内存0段1K放256个中断向量。 大量中断处理子程序,完成输入输出操作 OS 大量中断处理程序,让用户等调用实现中断服务子程序的向量保存与恢复功能 INT 21。 主程序 保护IMR、保护老中断向量、 CLI、本级中断允许、设置新中断向量、STI======正常处理,可以响应中断,可根据中断处理的结果进行分析、判断等等=======CLI、恢复老向量、恢复老IMR、STI,主程序结束返回操作系统 子程序 STI(允许更高优先级的中断请求)、现场保护、中断事件的处理(IN、OUT等)、发中断结束(EOI)命令 、现场恢复、中断返回IRET 计算机科学与技术学院-汇编语言程序设计 *
您可能关注的文档
最近下载
- 不同观测时次对日平均气温统计的影响.PDF VIP
- 妇科运用PDCA循环降低腹腔镜术后肠胀气的发生率品管圈成果汇报.pptx VIP
- 新版抖音内衣泳衣类目准入考试抖音达人内衣报白考试题库.docx VIP
- 美赛: 特等奖1910246---数学建模.pdf VIP
- 某基坑监测方案.doc VIP
- 胸部创伤患者麻醉管理.pptx VIP
- 2025年广东省学法考试试题满分答案及答案分析.doc VIP
- 不同时间分辨率对气象要素月平均值统计的影响.pdf VIP
- GA_T 1481.2-2018北斗/全球卫星导航系统公安应用 第2部分:终端定位技术要求.pdf
- 2025北京西城六年级(上)期末数学试卷含答案.docx VIP
原创力文档


文档评论(0)