| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 585 人关注过本帖
标题:谁能帮我解读一下这个程序
只看楼主 加入收藏
brantyou
Rank: 1
等 级:新手上路
帖 子:26
专家分:2
注 册:2009-5-3
结帖率:85.71%
收藏
已结贴  问题点数:18 回复次数:1 
谁能帮我解读一下这个程序
这个程序是用在DOS下读取MBR信息的,其中某些模块我不是很明白,哪位高手可以帮我解说解说,最好就能够把每一个块和一些相对较难的解释一下。
虽然我知道这个程序是以十六进制输出,结果如图:
图片附件: 游客没有浏览图片的权限,请 登录注册

程序:
;=====================================================================
;文件名:   mbr.asm
;作者:     Harry@Lee
;编译器:   Nasm
;编译指令: nasmw fs.asm -o fs.exe
;创建日期: 2007.11.21
;简介:     用于读取硬盘MBR引导记录
;=====================================================================
%macro print 1
   mov ah,02h
   mov dl,%1
   int 21h
%endmacro
;=====================================================================
[section .data]
buffer resb 512     ;512 Byte 缓冲区
;=====================================================================
[section .text]
global main
main:
   mov ax,0x0201   ;ah=02(功能号02H) al=01(读取一个扇区内容)
   mov bx,[buffer]
   mov cx,0x0001   
   mov dx,0x0080   ;磁头号:0 驱动器号:0
   pusha
   int 0x13
   popa
   mov cx,512    ;设置外循环次数
   mov di,1

display:
   mov dh,[bx]
   mov si,2     ;设置内循环次数
rotate:
   ror dh,4h
   mov dl,dh
   and dl,0fh
   cmp dl,09h
   jbe jmp1    ;小于等于9
   add dl,07h
jmp1:
   add dl,30h
   mov ah,02h
   int 21h
   dec si
   jnz rotate
   print 20h     ;打印"空格"
   cmp di,16
   jnz unbr      ;di!=15时跳
   cmp cx,1
   jz unbr
   print 0ah
   print 0dh
   mov di,0      ;清零
unbr:
   inc di
   inc bx
   loop display
exit:
   mov ah,4ch
   int 21h

end
搜索更多相关主题的帖子: 解读 
2009-11-04 23:37
onepc
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:223
专家分:569
注 册:2009-8-27
收藏
得分:18 
我也不清楚,帮你顶下。。现在看到dos汇编就头晕,那些中断什么的基本不清楚
2009-11-06 08:25
快速回复:谁能帮我解读一下这个程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022415 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved