华中科技大学汇编语言程序设计实验报告(六)中断与反跟踪.docVIP

华中科技大学汇编语言程序设计实验报告(六)中断与反跟踪.doc

  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文档。上传文档
查看更多
华中科技大学汇编语言程序设计实验报告(六)中断与反跟踪.doc

课程实 验报告 课程名称: 汇编语言程序设计实验 实验名称:实验四 中断与反跟踪 实验时间:2017-4-19, 14: 30-17: 30实验地点: 南一楼804室45号实验台 指导教师: 李专 专业班级:计算机科学与技术201502班 学 号: U201414596 姓 名: 卢振兴 同组学生: 报告日期: 2017年4月19日 原创性声明 本人郑重声明:本报告的内容由本人独立完成,有关观点、方法、数据和文献等的 引用已经在文中指出。除文中己经注明引用的内容外,本报告不包含任何其他个人或集体己 经公开发表的作品或成果,不存在剽窃、抄袭行为。 特此声明! 学生签名:卢振兴 口期:2017.4. 19 成绩评定 实验完成质量得分(70 分)(实验步骤清晰详细深 入,实验记录真实完整等) 报告撰写质量得分(30 分)(报告规范、完整、通 顺、详实等) 总成绩(100分) 指导教师签字: 1?实验目的与要求 (1) 掌握中断矢量表的概念; (2) 熟悉I/O访问,BIOS功能调用方法; (3) 掌握实方式下中断处理程序的编制与调试方法; (4) 熟悉跟踪与反跟踪的技术; (5) 提升对计算机系统的理解与分析能力。 实验内容 任务1:用三种方式获取中断类型码16H对应的中断处理程序的入口地址。 要求:首先要进入虚拟机状态,然后 (1) 直接运行调试工具(TD.EXE),观察中断矢量表中的信息。 (2) 编写程序,用16H功能调用方式获取(16H的使用可查阅教材附录),观察功能调 用相应的出口参数与“(1)”看到的结果是否相同(使用TD观看出口参数即可)。 (3) 编写程序,直接读取相应内存单元,观察读到的数据与“(1)”看到的结果是否 相同(使用TD观看程序的执行结果即可)。 任务2:编写一个接管键盘中断的中断服务程序并驻留内存,要求在程序返回DOS 操作系统后,键盘上的小写字母都变成了大写字母。 要求: (1) 在DOS虚拟机或DOS窗口下执行程序,中断服务程序驻留内存。 (2) 在DOS命令行下键入小写字母,屏幕显示为大写,键入大写时不变。执行TD, 在代码区输入指令“mov AX,0”看是否能发生变化。 (3)选作:另外编写一个中断服务程序的卸载程序,将键盘中断服务程序恢复到 原来的状态(也就是还原屮断矢量表的信息,先前驻留的程序可以不退出内存)。 任务3:读取CMOS内指定单元的信息,按照16进制形式显示在屏幕上。 要求: (1) 先输入待读取的CMOS内部单元的地址编号(可以只处理编号小于10的地址 单元)。再使用IN/OUT指令,读収CMOS内的指定单元的信息。 (2) 将读取的信息用16进制的形式显示在屏幕上。若是吋间信息,可以人工判断一 下是否正确。 实验过程 3.1任务1 3.1.1实现思想 用方法一查看吋,将DS段置零,找到16H中断所在位置。由于在实方式下,每个中断 表项占4个字节,那么16H的物理地址就是00000+!6HM=00058Ho在数据段中使用goto, 到达DS: 0058H,即可查看到屮断类型码16H对应的屮断处理程序的人口地址。 用方法二查看时,用到了 35H取中断信息的功能。将3516H参数传送到AX (相当于 AH=35, AL=16),在调用35H功能号后,BX和ES中将分别保存中断类型码16H入口地 址的信息,即IP和CS。 用方法三查看时,直接用BX和CX读取相应的内存单元的段值和偏移地址,即MOV BS,DS:[58H], MOV CX,DS:f60H]o 3.1.2源程序 方法二源程序: .386 STACK SEGMENT USE16 STACK DB 200 DUP(0) STACK ENDS CODE SEGMENT USE16 ASSUME CSrCODE START: XOR AX,AX MOV DS,AX MOV AX,3516H INT21H MOV AH,4CH INT21H CODE ENDS END START 方法三源程序: .386 STACK SEGMENT USE16 STACK DB 200 DUP(O) STACK ENDS CODE SEGMENT USE 16 ASSUME CS:CODE START: XOR AX, AX MOV DS,AX XOR CX,CX MOV BX,DS:[58H1 MOV CX,DS:[5AH| MOV AH,4CH INT21H CODE ENDS END START 3.1.3实验步骤 在DOSBOX中打开TD,进入界面后,在寄存器区域中将DS置0。在数据段中,使 用goto转到0058H,查看前4个比特屮存放的值,前两个比特(16位)存放的是段值,后 两个比特(16位)存放的是偏移地址。 在Not

文档评论(0)

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

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

1亿VIP精品文档

相关文档