我这样打开一个文件,哪里错了?

Sundery 2003-06-09 08:02:36
.MODEL SMALL
.CODE
ORG 100H

START: JMP MAIN

READ_FROM DB 'NOTE.TXT',0
RHANDLE DW READ_FROM
OPEN_FILE EQU 3DH

MAIN: MOV AL,00H
MOV DX,RHANDLE
MOV AH,OPEN_FILE
INT 21H
MOV AH,4CH
INT 21H
END START


无论是相对路径和绝对路径我都设置过了,肯定存在note.txt文件,和大小写无关
在xp下面和98下面都无法通过,
报错类型AX = 0002 显然是文件没有找到

请赐教,谢谢了:)
...全文
28 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sundery 2003-06-10
  • 打赏
  • 举报
回复
yinjintao(随机恋爱过程)(变态分布)

说对了,谢谢大家参与讨论:)真的!

Areslee 2003-06-10
  • 打赏
  • 举报
回复
没有初始化数据段寄存器
nicememory 2003-06-10
  • 打赏
  • 举报
回复
你的dx与实际的字符串地址相差100h,估计转换成.com就没有问题了
nicememory 2003-06-10
  • 打赏
  • 举报
回复
感觉是系统不支持???
data segment
str_Prompt db 0dh,'Please input a string end with Ctrl-Z:',0dh,0ah,'$'
buf db 200 dup(0)
len dw 0
char_table db '0123456789ABCDEF'
str_Err db 'A general error happens.$'
path db 'c:\ab.asm',00
CTRL_Z equ 1ah
data ends

code segment 'code'
assume cs:code,ds:data
main proc far
start:
mov ax, data
mov ds,ax


lea dx,str_Prompt
mov ah,09h
int 21h
lea bx,buf
nextchar:
mov ah,01h
int 21h
cmp al,CTRL_Z
je over
mov [bx],al
inc bx
jmp nextchar
over:

sub bx,offset buf
mov len,bx

lea dx,path
mov ah,3ch
int 21h
jc err
mov bx,ax
mov ah,40h
lea dx,buf
mov cx,len
int 21h
;jc err
mov ah,3eh
int 21h
;jc err
mov bx,dx
output:
mov dl,[bx]
mov ah,02h
int 21h
inc bx
loop output
jmp quit
err:
push ax
lea dx,str_Err
mov ah,09h
int 21h
pop ax
call numshow
quit:
mov ah,4ch
int 21h
main endp
numshow proc near
push dx
push cx
push bx
mov bx,offset char_table

mov dx,ax
again:
mov cl,4
rol dx,cl
mov al,dl
and dl,0f0h
and al,0fh
cbw
mov si,ax
push dx
mov dl,byte ptr [BX][SI]
mov ah,02h
int 21h
pop dx
cmp dx,0
jne again

pop bx
pop cx
pop dx
ret
numshow endp


code ends
end start
我写的
输入字符串,存入c:\ab.asm

debug时可以创建文件,并写入
但是执行exe文件时,返回错误05,拒绝存取
谁可以解释一下啊?
我用的系统是xp
masm 6.11
Sundery 2003-06-10
  • 打赏
  • 举报
回复
还是不行:(

我在DEBUG的时候,遇到的情况是
CF=1 AX=0002H
还是不行,我发给你们,你们帮我看看好吗?

真得很困惑:(


:(
紫郢剑侠 2003-06-10
  • 打赏
  • 举报
回复
楼上说的对。

楼主还是认真看看DOS中断服务程序的入口参数罢。
dongjianguo 2003-06-09
  • 打赏
  • 举报
回复
将mov dx,rhandle该成
lea dx,read_fromdb就行了
dunkel 2003-06-09
  • 打赏
  • 举报
回复
打开文件时, DX中的是文件名的地址, 你的那个是什么意思? 没有看明白.
...
MAIN: MOV AL, 00H
MOV DX, OFFSET READ_FROM ; ***
...

21,458

社区成员

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

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