【发布时间】:2014-01-18 19:47:00
【问题描述】:
程序应该打开文件,从中读取并打印前 4 个字符。
-
我不知道问题出在哪里。我什至自己在那里创建了文件,但它仍然无法打开文件。
org 100h jmp start filename db "C:\f1.txt",0 errormessage: db "Ndodhi nje gabim gjate ekzekutimit$" Buffer db 50h dup(?) start: lea dx,filename mov ah,3Dh mov al,0 int 21h jc error mov bx,ax mov ah,3Fh mov cx,4 lea dx,Buffer int 21h jmp end error:mov dx,offset errormessage mov ah,09h int 21h end: ret
【问题讨论】:
-
您仔细阅读过 int 21h 的 ah=3dh 函数的文档吗?提示:al 里有什么?
-
我看了文档,好像al需要访问模式。我加了mov al,0还是不行。还有其他建议吗?
-
检查 ax 中返回的错误代码!
-
在将 3Fh 移动到
ah之前将ax移动到bx(文件句柄)! -
@FrankKotler 是的,我错过了那个。但是,即使读取失败,也不会输出错误消息。该文件也永远不会关闭(如果有记忆,ah = 3eh)。这里不是绝对必要的,只是为了形式好。