




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
硬盘分区信息显示汇编语言硬盘分区信息显示汇编语言 课程设计课程设计 硬盘分区信息显示汇编语言课程设计 课程名称 汇编语言课程设计 设计题目 硬盘分区信息显示 指导教师 师东生 时间 第18周 一 教学要求 1 巩固和加深学生对汇编语言课程基本知识的理解和掌握 2 学会查阅和汇编语言相关的规范 手册等技术资料 3 能正确地绘制和使用程序流程图 4 掌握汇编语言程序设计和程序调试的基本技能 能进行基本的软件设计 5 掌握书写程序设计说明文档的能力 6 能对设计情况进行分析 总结及撰写设计报告 二 设计资料及参数 1 分区信息通过扩展中断INT 13调用从分区表 MBR 中读取 2 如果有多个分区 则根据分区表链结构 依次读出每个分区表参数 必须把全 部分区都显示出来 3 每次读引导扇区时 都要检验扇区标志 55AAH 有效性 三 设计要求及成果 1 设计要求 显示整个硬盘的分区参数 状态信息 参考显示格式如下 Partition Boot System Start c End c Size MB C 80 fat16 0001 0165 2000 D 00 fat32 0166 02ca 2048 E 00 none 02cc 03fe 2000 F 00 fat32 03ff 0455 2000 2 设计成果 1 程序源代码 2 课程设计说明书 四 进度安排 第一天 研究分析设计任务 查阅相关资料 第二天 系统总体设计 绘制流程图 第三天 编码 第四天 编码和调试 第五天 撰写设计报告 五 评分标准 1 设计期间上机出勤 表现和进度 20 2 设计的软件是否完成和完成情况 60 3 设计报告的质量 20 4 成绩采用五级分制评定 六 建议参考资料 沈美明等 IBM PC汇编语言程序设计 清华大学出版社 2001 8第二版 沈美明 IBM PC汇编语言程序设计实验教程 清华大学出版社 1992 9第一版1 设计题目 4 2 汇编语言课程设计目的和要求 53 概要设计 5 4 程序整体设计的概括总结 55 硬盘分区信息显示的源程序 96 试验结果 187 设 计心得 198 参考文献 19心得体会 通过此次课程设计 将我本学期所学的汇编知识得到巩固和应用 在设计的过程 中我遇到了很到问题 不过在老师和同学们的帮助和自己的思考下还是很好的 完成了 这此课程设计还让我懂得了写程序不能闭门造车 要努力拓宽知识面 开阔视野 拓展思维 它还让我学会了在网上查阅那些无限的资料六 参考文献 沈美明等 IBM PC汇编语言程序设计 清华大学出版社 2001 8第二版 沈美明 IBM PC汇编语言程序设计实验教程 清华大学出版社 1992 9第一版664 硬盘分区信息显示汇编语言 一 汇编语言课程设计目的和要求 一 目的 1 复习 巩固汇编语言的基础知识 进一步加深对汇编语言的理解和掌握 2 课程设计为学生提供了一个既动手又动脑 独立实践的机会 将课本上的理论 知识和实际有机的结合起来 锻炼学生的分析解决实际问题的能力 提高学生适 应实际 实践编程的能力 3 培养学生在项目开发中团队合作精神 创新意识及能力 二 要求 1 巩固和加深学生对汇编语言课程基本知识的理解和掌握 2 学会查阅和汇编语言相关的规范 手册等技术资料 3 能正确地绘制和使用程序流程图 4 掌握汇编语言程序设计和程序调试的基本技能 能进行基本的软件设计 5 掌握书写程序设计说明文档的能力 6 能对设计情况进行分析 总结及撰写设计报告 二 汇编语言课程设计选题如下 一 功能描述 1 显示整个硬盘的分区参数 状态信息 2 参考显示格式如下 Partition Boot System Start c End c Size MB C 80 fat16 0001 0165 2000 D 00 fat32 0166 02ca 2048 E 00 none 02cc 03fe 2000 F 00 fat32 03ff 0455 2000 G H 编程要点 1 分区信息通过扩展中断INT 13调用从分区表 MBR 中读取 2 如果有多个分区 则根据分区表链结构 依次读出每个分 区表参数 必须把全部分区都显示出来 3 每次读引导扇区时 都要检验扇区标志 55AAH 有效性 三 程序开发说明 一 硬盘分区表简介 硬盘分区表包含在硬盘的启动扇区 Boot Sector 中 1 Boot Sector 结构简介 Boot Sector 也就是硬盘的第一个扇区 0头0道1扇区 它由 MBR Master Boot Record DPT Disk Partition Table 和 Boot Record ID 三部分组成 MBR 又称作主引导记录占用 Boot Sector 的前 446 个字节 0 to 0 x1BD 存放系统主引导程序 它负责从活动分区中装载并运行系统引导程序 DPT 即主分区表占用 64 个字节 0 x1BE to 0 x1FD 记录了磁盘的基本分区信息 主分区表分为四个分区项 每项 16 字节 分别记录了每个主分区的信息 因此最多可以有四个主分区 Boot Record ID 即引导区标记占用两个字节 0 x1FE and 0 x1FF 对于合法引导区 它等于 0 xAA55 这是判别引导区是否合法的标志 2 分区表结构简介 分区表由四个分区项构成 以第一个分区项信息 1BEH 1CDH 为例如下 用debug编程读出0头0道1扇区四个分区项信息内容如下 C WINDOWS debug a100 1282 0100 int 13 1282 0102 int 3 1282 0103 rax AX 0000 201 1000 rcx CX 0000 1 rdx DX 0000 80 g 100 d11b0 1282 11B0 00 00 00 00 00 00 00 00 01 00 34 12 00 00 80 01 80 硬盘分区信息显示汇编语言 表示引导盘 1282 11C0 01 00 0C FE FF FF 3F 00 00 00 4E 44 2D 01 00 01 1282 11D0 C1 FF 0C FE FF FF 0C F5 3C 01 FC 8A 38 01 00 01 1282 11E0 C1 FF 0C FE FF FF 47 80 75 02 F8 93 32 02 00 00 1282 11F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA 分区结束标志0 xAA55 相对于01BEH的偏移量 0 分区状态 0 不活跃 0 x80 活跃盘即引导盘标志 1 分区起始磁头号 2 3 分区起始扇区和柱面号 底字节的低6位为扇区号 高2位为柱面号的第 9 10 位 高字节为柱面号的低 8 位 4 分区类型 如 0 x0C FAT32 0 x83 EXT2类型等等 00 表示此项未用 5 分区结束磁头号 6 7 分区结束扇区和柱面号 定义同前 8 0BH 本分区已用掉的扇区数 0CH 0FH 分区大小 总扇区数 二 为什么要备份硬盘分区表 系统启动过程主要由一下几步组成 以硬盘启动为例 1 开机 2 BIOS 加电自检 Power On Self Test POST 内存地址为 0ffff 0000 3 将硬盘第一个扇区 0头0道1扇区 也就是Boot Sector 读入内存地址 0000 7c00 处 4 检查 WORD 0000 7dfe 是否等于 0 xaa55 若不等于则转去尝试其他启动介质 如果没有其他启动介质则显示 No ROM BASIC 然后死机 5 跳转到 0000 7c00 处执行 MBR 中的程序 6 MBR 首先将自己复制到 0000 0600 处 然后继续执行 7 在主分区表中搜索标志为活动的分区 如果发现没有活动分区或有不止一个活动分区 则转停止 8 将活动分区的第一个扇区读入内存地址 0000 7c00 处 9 检查 WORD 0000 7dfe 是否等于 0 xaa55 若不等于则显示 Missing Operating System 然后停止 或尝试软盘启动 10 跳转到 0000 7c00 处继续执行特定系统的启动程序 11 启动系统 以上步骤中 2 3 4 5 步是由 BIOS 的引导程序 INT 19H 完成 6 7 8 9 10步由MBR中的引导程序完成 基本控制权转换协议 ROM BIOS与硬盘启动的控制协议是主引导程序将硬盘的0头0道1扇区拷贝到0000 7C 00处 然后JMP 0000 7C00 这样主引导程序便获得了计算机的控制权 许多主引导区病毒比如大麻病毒 6 4病毒正是利用这一控制协议来实施对计算 机的控制 三 如何读写硬盘分区表 使用DOS功能调用INT 13H 的功能号AH 2 读扇区 用于保存MBR AX 3 写扇区 用于恢复MBR Int13 2 3 读 写磁盘功能 al 扇区数 ch cl 磁道号 扇区号 dh dl 磁头号 驱动器号 es bx 缓冲区地址 三 程序代码 Dseg SEGMENT MBR DB 512 DUP DPT EQU 446 DPT2 EQU DPT 16 PacketSize DB 16 Reserved DB 0 BlockCount DW 1 BufferAddr DD BlockNum DQ 0 MainCount DW TabHead DB Partition Boot System Start c End c Size MB 标签集 TAGS 回复Comments 0 点击Count 271 QuitTip DB Press any key to exit 标签集 TAGS 回复Comments 点击Count parti DW Fat32 DB FAT32 标签集 TAGS 硬盘分区信息显示汇编语言 回复Comments 点击Count Fat16 DB FAT16 标签集 TAGS 回复Comments 点击Count NTFS DB NTFS 标签集 TAGS 回复Comments 点击Count ErrMsg DB Invalid Partition Table 标签集 TAGS 回复Comments 点击Count DSeg ENDS CSeg SEGMENT ASSUME CS CSeg DS DSeg ES DSeg Main PROC FAR PUSH DS SUB AX AX PUSH AX CALL INIT MOV AH 9 LEA DX TabHead INT 21h CALL crlf CALL ReadMBR CALL CHECK55AA MOV DI 42H CALL SetRec LEA BX MBR DPT2 8 LEA BP BlockNum MOV AX BX MOV MainCount AX MOV BP AX MOV AX BX 2 MOV MainCount 2 AX MOV BP 2 AX ReadExt CALL ReadMBR CALL CHECK55AA CALL SetRec LEA BX MBR DPT2 8 LEA BP BlockNum MOV AX BX ADD AX MainCount MOV BP AX MOV AX BX 2 ADC AX MainCount 2 MOV BP 2 AX MOV AL MBR DPT2 4 CMP AL 0 JNZ ReadExt CALL Exit Main ENDP CHECK55AA PROC NEAR lea bx mbr mov ax bx dpt 40h cmp ax 0aa55h jz s mov ah 9 lea dx ErrMsg int 21h CALL EXIT s ret CHECK55AA ENDP SetRec PROC NEAR call Prtparti mov cx 11 s1 call spa loop s1 call prtboot mov cx 6 s2 call spa loop s2 call getsys mov cx 4 s3 call spa loop s3 call prtstartc mov cx 8 s4 call spa loop s4 call prtendc mov cx 8 s5 call spa loop s5 LEA SI PacketSize MOV DL 80h MOV AH 42h INT 13h RET ReadMBR ENDP Init PROC NEAR MOV AX DSeg MOV DS AX MOV ES AX push ax push bx LEA BX BufferAddr LEA AX MBR MOV BX AX MOV BX 2 DS pop bx 硬盘分区信息显示汇编语言 pop ax RET Init ENDP Exit PROC NEAR CALL crlf LEA DX QuitTip MOV AH 9 INT 21h MOV AH 4ch INT 21H Exit ENDP Prthead PROC NEAR push ax push dx lea dx TabHead mov ah 9h int 21h pop dx pop ax ret Prthead ENDP Prtparti PROC NEAR push ax push dx push bx lea bx parti inc di mov bx di mov dl bx mov ah 2 int 21h pop bx pop dx pop ax ret Prtparti ENDP Prtboot PROC NEAR push bx mov ch 2 mov bx es dpt 1 call rotate pop bx ret Prtboot ENDP Getsys PROC NEAR push ax mov al es bx dpt 4 cmp al 04h je prtfat16 cmp al 0bh je prtfat32 cmp al 1bh je prtfat32 cmp al 0ch je prtfat32 cmp al 1ch je prtfat32 cmp al 07h je prtntfs CALL EXIT cannt recognize prtfat16 push dx lea dx fat16 mov ah 9h int 21h pop dx pop ax ret prtfat32 push dx lea dx fat32 mov ah 9h int 21h pop dx pop ax ret prtntfs push dx lea dx ntfs mov ah 9h int 21h pop dx pop ax ret Getsys ENDP Prtstartc PROC NEAR push ax push bx push cx push di add bx dpt mov di bx mov ch 4 mov cl 6 mov bh es di 2 shr bh 6 mov bl es di 3 call rotate pop di pop cx pop bx pop ax ret Prtstartc ENDP Prtendc PROC NEAR push ax push bx push cx push di a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教育政策的智慧解读与前瞻
- 基于信息技术的综合评价指标体系研究
- 基于认知科学的现代教育培训模式研究报告-以教育心理学为视角
- 2025年中国藏果香口含片行业市场调查、投资前景及策略咨询报告
- 2025年中国纹身小披肩行业市场调查、投资前景及策略咨询报告
- 2025年中国紫菜食品行业投资前景及策略咨询研究报告
- 2025年中国礼花灯行业投资前景及策略咨询研究报告
- 2025年中国皮革彩球行业投资前景及策略咨询研究报告
- 2025年中国电动车充电器专用测试仪行业投资前景及策略咨询研究报告
- 2025年中国熔结环氧粉末涂料行业投资前景及策略咨询研究报告
- 系统集成方案及实施步骤
- 2025年陇南村文书考试题及答案
- 2025年中科院心理咨询师培训考试复习题库-上(单选题)
- 危化三级安全教育
- 马克思主义基本原理与科技创新的结合心得体会
- 美发店投资入股协议书8篇
- 第四单元 课题3 物质组成的表示教学设计-2024-2025学年九年级化学人教版(2024)上册
- DeepSeek零基础到精通手册(保姆级教程)
- 2024年中国软件行业基准数据 (CSBMK-202410)
- 小学四年级下册四则混合运算及简便运算
- 公共政策分析概论 课件 第3章 政策主体、政策客体与政策环境
评论
0/150
提交评论