Проблема в написании кода.

Низкоуровневое программирование портов, микроконтроллеров и т.д.

Модератор: Andy

Ответить
Ivcrash
Сообщения: 3
Зарегистрирован: 13 янв 2010, 20:41

помогите с командами,нужно открыть текстовый файл 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, и эта прога считывает и выводит на экран всё содержимое файла (( ,а необходимо только первый символ вывести...
airyashov
Сообщения: 441
Зарегистрирован: 02 ноя 2007, 10:31

убери команду jmp out_str и после закрытия добавить jmp exit
icq:3(один)7748666
mail:airyashov( а)inbox.ru
Ivcrash
Сообщения: 3
Зарегистрирован: 13 янв 2010, 20:41

airyashov писал(а):убери команду jmp out_str и после закрытия добавить jmp exit

Спасибо Вам! ща попробую.
Ivcrash
Сообщения: 3
Зарегистрирован: 13 янв 2010, 20:41

Ivcrash писал(а):Спасибо Вам! ща попробую.

Благодарю Вас! Заработало всё как надо! Спасибо!
Ответить