Проблема в написании кода.
Добавлено: 13 янв 2010, 20:47
помогите с командами,нужно открыть текстовый файл exampl.txt и вывести на экран первый символ.Если файл не создан то создать пустой файл.
Получилось так:
DATA SEGMENT
path db "exampl/exampl.txt",0 ; имя файла для открытия
buf db ?
DATA ENDS
SSEG SEGMENT STACK
db 200 dup(?)
SSEG ENDS
CODE SEGMENT
ASSUME CS:CODE, DS: DATA, SS:SSEG
begin:
mov ax,DATA
mov DS,ax
;открываем файл
mov ax,3d00h
lea dx,path
int 21h
jc Error_file
mov bx,ax
xor cx,cx
xor dx,dx
mov ax,4200h
int 21h
out_str:
mov ah,3fh
mov cx,1
lea dx,buf
int 21h
cmp ax,cx
jnz close
mov dl,buf
mov ah,2
int 21h
jmp out_str
close:
mov ah,3eh
int 21h
Error_file:
mov ah, 3Ch
xor cx, cx
mov dx, offset path
int 21h
jnc Begin
jmp exit
exit:
mov ah,4ch
int 21h
CODE ENDS
end begin
Всё это работает отлично, но при условии. что нужно предварительно создать директорию exampl, и эта прога считывает и выводит на экран всё содержимое файла (( ,а необходимо только первый символ вывести...
Получилось так:
DATA SEGMENT
path db "exampl/exampl.txt",0 ; имя файла для открытия
buf db ?
DATA ENDS
SSEG SEGMENT STACK
db 200 dup(?)
SSEG ENDS
CODE SEGMENT
ASSUME CS:CODE, DS: DATA, SS:SSEG
begin:
mov ax,DATA
mov DS,ax
;открываем файл
mov ax,3d00h
lea dx,path
int 21h
jc Error_file
mov bx,ax
xor cx,cx
xor dx,dx
mov ax,4200h
int 21h
out_str:
mov ah,3fh
mov cx,1
lea dx,buf
int 21h
cmp ax,cx
jnz close
mov dl,buf
mov ah,2
int 21h
jmp out_str
close:
mov ah,3eh
int 21h
Error_file:
mov ah, 3Ch
xor cx, cx
mov dx, offset path
int 21h
jnc Begin
jmp exit
exit:
mov ah,4ch
int 21h
CODE ENDS
end begin
Всё это работает отлично, но при условии. что нужно предварительно создать директорию exampl, и эта прога считывает и выводит на экран всё содержимое файла (( ,а необходимо только первый символ вывести...