首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当使用interrupt INT 21h,3Dh时,"Path not found“

当使用interrupt INT 21h,3Dh时,"Path not found“
EN

Stack Overflow用户
提问于 2017-11-27 05:46:37
回答 1查看 264关注 0票数 0

在我的程序中使用中断INT 21h, 3Dh时,会设置CF,这意味着在尝试打开我的文件时出现错误。AX寄存器中的错误代码是3:"path not found"根据this网站。

我不知道如何修复这个错误。我的文件名正确地写入了DATASEG (以零字节结尾),该文件驻留在与我的程序相同的文件夹中,并且(据我所知)寄存器中填充了正确的数据。

我的文件处理代码的一小段:

代码语言:javascript
运行
复制
CODESEG

...

  mov ah, 3Dh
  lea dx, [mapfile]
  mov al, 0
  int 21h

  mov [handle], ax  ; AX currently doesn't contain the handle, but the error code

...

DATASEG
  mapfile db "map.txt", 0
  handle dw ?
  buffer db ?

你知道为什么会发生这个错误(以及如何修复它)吗?

EN

回答 1

Stack Overflow用户

发布于 2017-11-27 06:56:41

这可能会失败的一些原因:

  • 是在你的程序中安装的吗?
  • 当前目录中的文件吗?您似乎没有使用完整的路径规范。文件与程序位于同一目录并不意味着这一点。尝试编写完整的路径规范。
  • 如果您使用的是DOSBox之类的仿真器,请确保预先挂载了包含此文件的目录。不太可能,因为它和程序在同一个目录中。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47501347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档