关于读取磁盘到内存, 请大家帮解答一下, 实在是没有分了, 很急, 先谢谢了

Nikshuang 2007-09-25 04:44:24
我要将1.44M磁盘第40个扇区(物理地址从0x5000开始)的读入到0x20000开始的内存地址中,完成后并跳转到0x20000,
扇区存放的是一个小程序, 内容是打印一个字符, 相关代码如下:
BASE EQU 0x2000

mov ax, 0x0201
mov dx, 0x0000
mov cx, 0x0204(0x0205我也试过了)
mov bx, 0x0000
int 0x13
jnc ok_read
... ;读取不成功的处理
ok_read:
jmp BASE:0

读取是成功的,可是跳转后却没有相应的打印一个字符的效果, 请大家帮忙看下哪里有错了, 谢谢了
...全文
104 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyserver 2007-10-24
  • 打赏
  • 举报
回复
没学过计算机,不太懂编程,不过个人感觉你的思路有点问题:
一、你使用的是DOS汇编,那么磁盘上存放的可执行文件是COM还是EXE,二者的执行方式不一样的(即在内存中的映像起始位置是不同的)。
二、另外,软盘使用的是FAT格式,数据有可能不是连续存放的,直接顺序读扇区可能导致数据读入的结果不正确。
zhgwbzhd 2007-09-30
  • 打赏
  • 举报
回复
这个没什么难的吧,在读取时注意软驱的参数,还有就是要存入数据的段基址。
其他没别的了吧
另外你可以先运行你的显示小程序,看是否正确执行。
coolerhero 2007-09-30
  • 打赏
  • 举报
回复
你可以先把数据读到内存中去,再COPY到你要的内存位置,转去执行不就行了
Nikshuang 2007-09-28
  • 打赏
  • 举报
回复
悲哀啊, 没分就没人接,幸好已经解决了...........
Nikshuang 2007-09-26
  • 打赏
  • 举报
回复
不会吧,没分就没有回复??????帮帮忙啊

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧