到目前为止,我有这个。
mov ah,02h
mov cl,11001100001111011101000b ;6,692,584 in dec
mov dl,0
int 13
我看到你的代码有以下问题。
AH
应该是3而不是2(2是用来读的).CL
只有8位,所以不太可能持有那么大的荣誉值。AH
, AL
, CH
, CL
, DH
, DL
和 ES:BX
如下表所示。AH 03h
AL Number of sectors to write
CH Track number
CL Sector number
DH Head number
DL Drive number
ES:BX Buffer to write
如果你需要关于中断的信息 你可以在谷歌上搜索 "Ralf Brown" 这个家伙在我们还没有与这些东西绝缘的日子里,创建并维护了权威的中断列表。例如,请看: 索引的HTML版本.
您的具体需求可以从以下方面得到满足 的 Int 13/AH=03h
节.
虽然未经测试,而且是在真实模式下写的,但一个例子将是类似以下的内容。
mov ax, 0301h ; cmd 3 (write sector), 1 sector
mov cx, 0001h ; track 0, sector 1
mov dx, 0000h ; head 0, drive 0
mov es, segment buff ; segment and offset of buffer
mov bx, offset buff
int 13h ; make the call
jc errp ; detect error
ret
errp: ; process error here
ret
buff: db 0(256) ; buffer to write