Assembly 使用int 21h读取文件时出现错误
我正在尝试使用Assembly 使用int 21h读取文件时出现错误,assembly,x86-16,emu8086,Assembly,X86 16,Emu8086,我正在尝试使用int 21h命令读取文件并携带标志CF打开且AX=6,这意味着我的文件处理程序无效。 你们知道为什么它不起作用吗。以下是我的程序: proc openFile call xorAll mov ah,0Fh mov al,0 mov dx, offset fileName int 21h jc error mov fileHandler, ax ret endp openFile
int 21h
命令读取文件并携带标志CF打开且AX
=6,这意味着我的文件处理程序无效。你们知道为什么它不起作用吗。以下是我的程序:
proc openFile
call xorAll
mov ah,0Fh
mov al,0
mov dx, offset fileName
int 21h
jc error
mov fileHandler, ax
ret
endp openFile
proc closeFile
call xorAll
mov ah,10h
mov bx, fileHandler
int 21h
ret
endp closeFile
proc failOpenFile
mov ah,09
int 21h
ret
endp failOpenFile
proc xorAll
xor ax,ax
xor bx,bx
xor cx,cx
xor dx,dx
ret
endp xorAll
proc waitForClick
mov ah,0
int 16h
ret
endp waitForClick
proc readBytes
call xorAll
mov ah,3Fh
mov bx,fileHandler
mov cl,bytesToRead
mov dx,offset readInfo
int 21h
jc error
ret
endp readBytes
我只是不明白为什么它不起作用。仅供参考,fileHandler位于
dw
中 DOS功能0Fh和10h使用FCB(文件控制块、CP/M-times的旧版本)。这些都过时了
您应该使用3Dh(打开文件)和3Eh(关闭文件),而不是使用句柄。DOS功能0Fh和10h使用FCB(文件控制块,CP/M-times的旧版本)。这些都过时了
您应该使用3Dh(打开文件)和3Eh(关闭文件),而不是使用句柄。如果您向我们展示了如何使用21/F和21/10功能使用FCB(CP/M-times中的片段),可能会有所帮助。您应该使用21/3d和21/3e,而不是使用handles@Tommylee2k我会在几分钟内复制它seconds@Tommylee2k,你是我的savior@Tommylee2k请写下你的评论作为回答。它清楚地解决了这个问题。如果您向我们展示了如何使用21/F和21/10功能使用FCB(CP/M-times的残余),这可能会有所帮助。您应该使用21/3d和21/3e,而不是使用handles@Tommylee2k我会在几分钟内复制它seconds@Tommylee2k,你是我的savior@Tommylee2k请写下你的评论作为回答。它清楚地解决了这个问题。