8086汇编读取磁盘文件 的一个问题
答案:3 悬赏:50
解决时间 2021-03-05 18:45
- 提问者网友:嘚啵嘚啵
- 2021-03-05 02:36
8086汇编读取磁盘文件 的一个问题
最佳答案
- 二级知识专家网友:执傲
- 2021-03-05 03:20
MOV DX,OFFSET LSZR ;打开kp.txt
MOV AL,0;只读
INT 3DH ;文件代号在AX里面
这段代码怎么能打开文件啊?
改成:
LEA DX,LSZR
MOV AX,3D00H
INT 21H
MOV AL,0;只读
INT 3DH ;文件代号在AX里面
这段代码怎么能打开文件啊?
改成:
LEA DX,LSZR
MOV AX,3D00H
INT 21H
全部回答
- 1楼网友:执傲
- 2021-03-05 04:44
DATA SEGMENT
MESGN DB 'LSZ.TXT',0;文件名字符区
DATAREGDB 256 DUP (0) ;数据区
LSZR DB 'KP.TXT',0
DATA ENDS
;--------------------------------
STACK SEGMENT STACK 'STACK'
DB 100 DUP (?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
;================================
MOV DX,OFFSET LSZR ;打开kp.txt
mov ax,3d00h;只读
int 21h ;文件代号在AX里面
MOV DX,OFFSET DATAREG ;读kp.txt
MOV BX,AX;保持文件代号
MOV CX,100 ;读取100字节
mov ah,3FH
int 21h
MOV AH,3EH ;关闭文件kp.txt
INT 21H
LEA DX,MESGN ;创建文件lsz.txt
MOV CX,0;属性值0
MOV AH,3CH
INT 21H
MOV BX,AX;保持文件代号
LEA DX,DATAREG ;写入文件lsz.txt
MOV CX,100
MOV AH,40H
INT 21H
MOV AH,3EH ;关闭lsz.txt
INT 21H
;================================
MOV AH,01H
INT 21H
MOV AX,4C00H
INT 21H
CODE ENDS
END START
MESGN DB 'LSZ.TXT',0;文件名字符区
DATAREGDB 256 DUP (0) ;数据区
LSZR DB 'KP.TXT',0
DATA ENDS
;--------------------------------
STACK SEGMENT STACK 'STACK'
DB 100 DUP (?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
;================================
MOV DX,OFFSET LSZR ;打开kp.txt
mov ax,3d00h;只读
int 21h ;文件代号在AX里面
MOV DX,OFFSET DATAREG ;读kp.txt
MOV BX,AX;保持文件代号
MOV CX,100 ;读取100字节
mov ah,3FH
int 21h
MOV AH,3EH ;关闭文件kp.txt
INT 21H
LEA DX,MESGN ;创建文件lsz.txt
MOV CX,0;属性值0
MOV AH,3CH
INT 21H
MOV BX,AX;保持文件代号
LEA DX,DATAREG ;写入文件lsz.txt
MOV CX,100
MOV AH,40H
INT 21H
MOV AH,3EH ;关闭lsz.txt
INT 21H
;================================
MOV AH,01H
INT 21H
MOV AX,4C00H
INT 21H
CODE ENDS
END START
- 2楼网友:我住北渡口
- 2021-03-05 04:39
两个地方错了
1. MOV DX,OFFSET LSZR ;打开kp.txt
MOV AL,0;只读
INT 3DH ;文件代号在AX里面
改为:
MOV DX,OFFSET LSZR;打开kp.txt
MOV AL,0;只读
mov ah,3DH
int 21h ;文件代号在AX里面
2.MOV DX,OFFSET DATAREG ;读kp.txt
MOV BX,AX;保持文件代号
MOV CX,100 ;读取100字节
INT 3FH
改为:
MOV DX,OFFSET DATAREG ;读kp.txt
MOV BX,AX ;保持文件代号
MOV CX,100;读取100字节
mov ah,3FH
int 21h
正确程序如下:
;********************************
;==需要:程序目录下的文件kp.txt
;==程序将创建文件lsz.txt
;==程序将复制kp.txt的内容到lsz.txt
;********************************
DATASEGMENT
MESGNDB'LSZ.TXT',0 ;文件名字符区
DATAREGDB256 DUP (0) ;数据区
LSZRDB'KP.TXT',0
DATAENDS
;--------------------------------
STACK_SEGMENT STACK 'STACK'
DB100 DUP (?)
STACK_ENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,SS:STACK_
START:MOV AX,DATA
MOV DS,AX
;================================
MOV DX,OFFSET LSZR;打开kp.txt
MOV AL,0;只读
mov ah,3DH
int 21h ;文件代号在AX里面
MOV DX,OFFSET DATAREG ;读kp.txt
MOV BX,AX ;保持文件代号
MOV CX,100;读取100字节
mov ah,3FH
int 21h
MOV AH,3EH;关闭文件kp.txt
INT 21H
LEA DX,MESGN;创建文件lsz.txt
MOV CX,0;属性值0
MOV AH,3CH
INT 21H
MOV BX,AX ;保持文件代号
LEA DX,DATAREG;写入文件lsz.txt
MOV CX,100
MOV AH,40H
INT 21H
MOV AH,3EH;关闭lsz.txt
INT 21H
;================================
MOV AH,01H
INT 21H
MOV AX,4C00H
INT 21H
CODEENDS
END START
1. MOV DX,OFFSET LSZR ;打开kp.txt
MOV AL,0;只读
INT 3DH ;文件代号在AX里面
改为:
MOV DX,OFFSET LSZR;打开kp.txt
MOV AL,0;只读
mov ah,3DH
int 21h ;文件代号在AX里面
2.MOV DX,OFFSET DATAREG ;读kp.txt
MOV BX,AX;保持文件代号
MOV CX,100 ;读取100字节
INT 3FH
改为:
MOV DX,OFFSET DATAREG ;读kp.txt
MOV BX,AX ;保持文件代号
MOV CX,100;读取100字节
mov ah,3FH
int 21h
正确程序如下:
;********************************
;==需要:程序目录下的文件kp.txt
;==程序将创建文件lsz.txt
;==程序将复制kp.txt的内容到lsz.txt
;********************************
DATASEGMENT
MESGNDB'LSZ.TXT',0 ;文件名字符区
DATAREGDB256 DUP (0) ;数据区
LSZRDB'KP.TXT',0
DATAENDS
;--------------------------------
STACK_SEGMENT STACK 'STACK'
DB100 DUP (?)
STACK_ENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,SS:STACK_
START:MOV AX,DATA
MOV DS,AX
;================================
MOV DX,OFFSET LSZR;打开kp.txt
MOV AL,0;只读
mov ah,3DH
int 21h ;文件代号在AX里面
MOV DX,OFFSET DATAREG ;读kp.txt
MOV BX,AX ;保持文件代号
MOV CX,100;读取100字节
mov ah,3FH
int 21h
MOV AH,3EH;关闭文件kp.txt
INT 21H
LEA DX,MESGN;创建文件lsz.txt
MOV CX,0;属性值0
MOV AH,3CH
INT 21H
MOV BX,AX ;保持文件代号
LEA DX,DATAREG;写入文件lsz.txt
MOV CX,100
MOV AH,40H
INT 21H
MOV AH,3EH;关闭lsz.txt
INT 21H
;================================
MOV AH,01H
INT 21H
MOV AX,4C00H
INT 21H
CODEENDS
END START
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯