【问题标题】:Strange results writing to second cylinder floppy image写入第二个圆柱软盘图像的奇怪结果
【发布时间】:2013-11-16 09:15:13
【问题描述】:

我正在尝试写入软盘映像第二个柱面的扇区。为了测试,我尝试在第二个柱面的第一个扇区上写数字 1-9。

逻辑是,一个柱面有 18 个扇区,每个扇区有 512 个字节,这个结果应该出现在字节 9216/0x2400(在字节 8704/0x2200 之后,这是第一个柱面的第 18 个扇区)。奇怪的是,在使用hexdump 检查结果后,序列改为位于字节 18432/0x4800。

我想了解为什么软盘的第一个和第二个圆柱体(从汇编程序的角度来看)不连续。

NASM 汇编程序:

org 7c00h
jmp begin
data db 1,2,3,4,5,6,7,8,9
begin:
mov ax, 0
mov es, ax
mov bx, data
mov al, 1
mov ah, 3
mov dh, 0
mov dl, 0
mov ch, 1
mov cl, 1
int 13h

【问题讨论】:

  • 0 缸盖 1 跟随缸 0 缸盖 0,而不是缸 1 缸盖 0?

标签: assembly x86 x86-16 bios floppy


【解决方案1】:

事实上,一个柱面有 36 个扇区,因为软盘是双头的。原始 .img 存储扇区顺序交替边:

高温超导 001 002 ... 0018 101 ...

【讨论】:

  • 我不确定第二部分是否正确,因为在具有相同磁头的 2 个连续扇区上写入会产生完全由 512 字节而不是 1024 字节分隔的数据。另外,您能否详细说明一下磁头-气缸关系?一个链接,也许是解释这个的地方。
  • 经过几次测试,我终于明白了软盘上的数据布局。请编辑您的答案,因为仅当第一个 HT 的所有 18 个扇区都通过时,头部才会增加,即 HTS 001 002 ... 0018 101 ...
猜你喜欢
  • 2020-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-14
  • 1970-01-01
相关资源
最近更新 更多