我正在使用0x13
具有扩展驱动器功能的中断在实模式下从扩展驱动器中读取扇区0x42
。
我在以下结构中将 DAP 定义为 16 个字节:
DAP:
db 0x10 ; size of DAP
db 0 ; Reserved zero
dw 0x0001 ; Number of sectors to read
dd 0x00000200 ; Memory Location to load the sector (s)
dq 0 ; Start of the sectors to be read
如您所见,DAP 段的长度为 8 字节。在寻找我的扇区(循环扇区)期间,我增加了该段并将其与我的驱动器的实际大小进行比较。我用来递增的错误代码仅限于 16 位模式:
mov ax, [DAP+0x08]
inc ax
mov [DAP+0x08], ax
我不想在复杂的寻址模式下使用几个通用寄存器来达到我的目的,我想你有一些简单有效的方法。