请问如何用debug将C盘的第一个扇区读到一个文件中?又如何写回?

visitant 2003-01-27 01:22:55
现在我用的是WIN2K,想再新装一个一样的2K,还想用NT的os loader
所以需要做上述操作,但是我对汇编一窍不通,哪儿位大侠帮在下个忙吧
最好能把在debug中的操作写详细些,谢谢了
我都急死了
...全文
30 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Nvram 2003-01-29
  • 打赏
  • 举报
回复
1. l命令只能读当前系统已经识别出的DOS逻辑盘的扇区
0是A盘,1是B盘,2是C盘。。。
2. 一般0x000-0x0ff是PSP,一般不用(系统使用),所以从0x100开始,如果你非从0x200开始也行

一句两句说不清,看看DOS编程的书吧。
visitant 2003-01-29
  • 打赏
  • 举报
回复
谢谢
visitant 2003-01-28
  • 打赏
  • 举报
回复
我要做的实际上是linux下的命令
dd if=/dev/hda1 of=bootsect.bin count=1
dd if=bootsect.bin of=/dev/hda1 count=1

Nvram,你是对的,
也谢谢ddszhan(高等数学),读mbr的将来说不定也有用
不过我先不结帖,还有两个问题想请教一下,怕帖子落下去

1、这样做是不是只能读dos认出的分区?比如说用dos启动的话
-l 100 3 0 1是否还有效?(假设d盘是ntfs分区)

2、-l 100 2 0 1里的地址100是随便取的么?
-r dx
DX 0000
:100
dx是高字节,为什么是100? (512)10 不是 0200H么?

Nvram 2003-01-27
  • 打赏
  • 举报
回复
人家说的是“C盘的第一个扇区”,不是“硬盘的第一个扇区”
ddszhan 2003-01-27
  • 打赏
  • 举报
回复
写入文件:
C:\>debug
-a1000
-mov ax,201
-mov bx,100
-mov cx,1
-mov dx,80
-int 13
-int 20
-g=1000
-n mbr.bin
-w
-q

写:
C:\>debug
-l100 mbr.bin
-a1000
-mov ax,301
-mov bx,100
-mov cx,1
-mov dx,80
-int 13
-int 20
-g=1000
-q
Nvram 2003-01-27
  • 打赏
  • 举报
回复
读:

C:\>debug
-l 100 2 0 1
-nboot.bin
-r cx
CX 0000
:200
-r dx
DX 0000
:100
-w
Writing 00200 bytes
-q
C:\>

写:

C:\>debug boot.bin
-w 100 2 0 1
-q
C:\>

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧