c语言中用简易暗纹来输入密码,华中科技大学汇编语言程序设计实验报告(七).doc...

华中科技大学汇编语言程序设计实验报告(七).doc

课程实验报告

课程名称:实验名称:汇编语言程序设计实验

课程名称:

实验名称:

汇编语言程序设计实验

实验四中断与反跟踪

实验时间:2017-4-26, 14: 30-17: 30实验地点: 南一楼804室45号实验台

指导教师:李专

专业班级:计算机科学与技术

专业班级:

计算机科学与技术201502班

学 号: U201414596

学 号: U201414596

姓 名:卢振兴

同组学生:洪豆报告日期: 2017年4月26 LI

原创性声明

本人郑重声明:本报告的内容由本人独立完成,有关观点、方法、数据和文献等的 引用己经在文中指出。除文中已经注明引用的内容外,本报告不包含任何其他个人或集体己 经公开发表的作品或成果,不存在剽窃、抄袭行为。

特此声明!

学生签名:卢振兴

日期: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+16HM=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:[60H]o

3.1.2源程序

方法二源程序:

.386

STACK SEGMENT USE 16 STACK

DB 200 DUP(O)

STACK ENDS

CODE SEGMENT USE 16

ASSUME CS:CODE

START:

XOR AX,AX

MOV DS,AX

MOVAX,3516H

INT21H

MOV AH,4CH

INT21H

CODE ENDS

END START

方法三源程序:

.386

STACK SEGMENT USE 16 STACK

DB 200 DUP(O)

STACK ENDS

CODE SEGMENT USE16

ASSUME CS:CODE

START:

XOR AX,AX

MOV DS,AX

XOR CX,CX

MOV BX,DS:[58H1

MOV CX,DS:L5AHJ

MOV AH,4CH

INT21H

CODE ENDS

END START

3.1.3实验步骤

在DOSBOX中打开TD,进入界面后,在寄存器区域中将DS置0。在数据段中,使 用goto转到OO58H

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值