鱼C论坛

 找回密码
 立即注册
查看: 2616|回复: 3

8086汇编,dosbox用int13中断读写不出来数据?

[复制链接]
发表于 2019-7-15 17:53:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
以下代码把第一张显示存入硬盘中

  1. assume cs:code
  2. code segment
  3. start:
  4.                                         mov ax,0b800h
  5.                                         mov es,ax
  6.                                         mov bx,0
  7.                                        
  8.                                         mov al,8
  9.                                         mov ch,0
  10.                                         mov cl,1
  11.                                         mov dl,80h
  12.                                         mov dh,0
  13.                                         mov ah,3
  14.                                         int 13h
  15.                                        
  16.                                         mov ax,4c00h
  17.                                         int 21h
  18. code ends
  19. end start
复制代码

把数据从硬盘中读取到0:200h的位置

  1. assume cs:code
  2. code segment

  3. start:
  4.                                         mov ax,0
  5.                                         mov es,ax
  6.                                         mov bx,200h
  7.                                         mov al,8
  8.                                         mov ch,0
  9.                                         mov cl,1
  10.                                         mov dl,80h
  11.                                         mov dh,0
  12.                                         mov ah,2
  13.                                         int 13h
  14.                                        
  15.                                         mov ax,4c00h
  16.                                         int 21h
  17.                                        
  18. code ends
  19. end start
复制代码

因为我不会看硬盘中的数据所以用的是再读取的方式,而我这里得到的结果是0:200h位置的数据没有改变
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-7-15 18:42:17 | 显示全部楼层
打听了一下,好像是dosbox不能用这个中断,不知道对不对。不过人说XP好像可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-15 18:58:51 | 显示全部楼层
本帖最后由 jackz007 于 2019-7-15 19:39 编辑

        楼主,知道自己在干啥吗?你的代码把  ds:0 处开始的连续 1000h 字节的内容写入第一个硬盘的0柱面,第1磁道,第1扇区~第8扇区,这个区域是整个磁盘的 MBR 的所在,也就是记录了磁盘分区表和主引导记录的扇区。这些信息一旦被破坏,你的硬盘就会丢掉分区信息,无法引导操作系统,甚至无法正常识别硬盘的格式信息,说白了,就是会丢掉整个硬盘上所有的数据。

        你真的想清楚了,一点都不在乎?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-17 15:45:08 | 显示全部楼层
jackz007 发表于 2019-7-15 18:58
楼主,知道自己在干啥吗?你的代码把  ds:0 处开始的连续 1000h 字节的内容写入第一个硬盘的0柱面 ...

嗯 那个 我用的是虚拟机 应该不会影响到真实的硬盘吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 21:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表