程序集 INT 13h - 读磁盘问题

发布于 2024-08-16 08:58:34 字数 373 浏览 6 评论 0原文

我需要能够用汇编语言编写一个程序来读取磁盘的第一个扇区(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

结果是缓冲区变量。

提前致谢。

I need to be able to write a program in assembly to read the first sector of a disk (The MBR) and write it to a floppy disk or at least show the data.
I understand that INT 13h and 25h do not work in the windows protected mode and i even tried my code in Dos but the dos system hangs when I run the program. This is the code:

  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

result is the buffer variable.

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

╄→承喏 2024-08-23 08:58:34

我认为这行是错误的

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

I think this line is wrong

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

It should be

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

And maybe you also have to restore the ES, example

push es
mov  es, ...
...
pop  es
' done
柒夜笙歌凉 2024-08-23 08:58:34

是的。终于成功了。这是代码(仅在 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     

Yeb. it finally worked. This is the code (only runs in DOS because the INT 13h can't run in windows OSes.

            mov dx,80h
        mov cx,1
        mov bx,ds
        mov es,bx
        mov bx,offset result
        mov ax,0201h
        int 13h     
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文