代码之家  ›  专栏  ›  技术社区  ›  Auxiliary

汇编INT 13h-读取磁盘问题

  •  2
  • Auxiliary  · 技术社区  · 16 年前

    我需要能够在汇编中编写程序来读取磁盘的第一个扇区(MBR)并将其写入软盘,或者至少显示数据。 我知道INT 13h和25h在windows保护模式下不工作,我甚至在Dos下尝试了我的代码,但当我运行程序时Dos系统挂起。代码如下:

      MOV byte ptr es:[bx], offset result
      MOV     AL,1 ;number ofsectors to read
      MOV     Cl,1 
      MOV     ch,0  
      mov     dl,80h  ;the HDD
      mov     dh,1
      mov ah,02h
      INT     13h
    

    结果是缓冲区变量。

    提前谢谢。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Nick Dandoulakis    16 年前

    MOV byte ptr es:[bx], offset result ' attempts to write memory [bx]
    

    MOV es, segment_offset ' probably not needed
    MOV bx, buffer_offset
    ...
    

    也许你还需要恢复 ES ,例如

    push es
    mov  es, ...
    ...
    pop  es
    ' done
    
        2
  •  1
  •   Auxiliary    16 年前

    长江经济带它终于奏效了。这是代码(仅在DOS中运行,因为INT 13h不能在windows操作系统中运行)。

                mov dx,80h
            mov cx,1
            mov bx,ds
            mov es,bx
            mov bx,offset result
            mov ax,0201h
            int 13h     
    
    推荐文章