鱼C论坛

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

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

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

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

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

x
以下代码把第一张显示存入硬盘中
assume cs:code
code segment
start:
                                        mov ax,0b800h
                                        mov es,ax
                                        mov bx,0
                                        
                                        mov al,8
                                        mov ch,0
                                        mov cl,1
                                        mov dl,80h
                                        mov dh,0
                                        mov ah,3
                                        int 13h
                                        
                                        mov ax,4c00h
                                        int 21h
code ends
end start
把数据从硬盘中读取到0:200h的位置
assume cs:code
code segment

start:
                                        mov ax,0
                                        mov es,ax
                                        mov bx,200h
                                        mov al,8
                                        mov ch,0
                                        mov cl,1
                                        mov dl,80h
                                        mov dh,0
                                        mov ah,2
                                        int 13h
                                        
                                        mov ax,4c00h
                                        int 21h
                                        
code ends
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-7-5 02:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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