Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2013, 19:08   #1
Iren1993
 
Регистрация: 30.10.2011
Сообщений: 8
По умолчанию Работа с файлами: записать в конец файла строку символов

Помогите дописать код!
Изначально задача звучит так: Составить программу, осуществляющую открытие заданного пользователем файла и записать в конец файла, строку символов введенную с клавиатуры. Путь ОБЯЗАТЕЛЬНО должен, вводиться с клавиатуры пользователем.

Это все по сути есть, но необходимо сделать чтобы работала 5-ая ошибка (доступ для записи запрещен).
и еще ОЧЕНЬ ВАЖНО, заменить вот эту часть кода стандартными дескрипторами.
Код:
    lea dx, ms1
    mov ah,09h
    int 21h
 
    mov ah,0Ah
    lea dx,fstfile
    int 21h
Как я поняла в область данных поместить
consol db 'CON',1
но как и куда это помещать это потом, чтобы все работало как надо, я не понимаю.

Вот сам код программы!

Код:
dat segment
    fstfile  db  254, 256 dup (?)
    fsthandle   dw  ?
    eof  db 0
    buf db 99, 100 dup (?)          
    buf1 db 99, 100 dup (?)
    ms1 db 'Enter path to file: $'
    ms2 db 'vvedite stroku:',13,10,'$'      
    ochibka2 db 13, 10, 'Error 2, file not found', 13, 10, '$'
    ochibka3 db 13, 10, 'Error 3, path not found', 13, 10, '$'
    ochibka5 db 13, 10, 'Error 5, tolko chtenie', 13, 10, '$'
    entr db 13,10,'$'   
 
  dat ends
 
 
  stck segment stack
    db  200  dup(?)
  stck ends 
 
 
  code segment
    assume  cs:code, ds:dat, ss:stck
 
begin:
 
        mov ax,dat
    mov ds,ax
 
start:  
 
    lea dx, ms1
    mov ah,09h
    int 21h
 
    mov ah,0Ah
    lea dx,fstfile
    int 21h 
 
mov bh, 0
mov bl, [fstfile+1]
mov di, bx
mov byte [fstfile+di+1], 0
 
    mov ah,9h                       
    mov dx,offset entr
    int 21h 
 
    mov ah,3Dh                       
    lea dx,fstfile
    add dx,2                                    
        mov al,1                                            
    int 21h
                        
 
cmp ax,02h
je e2
cmp ax,03h
je e3
cmp ax,05h
je e5
    mov fsthandle,ax                    
 
 
    mov ah,42h
    mov bx,fsthandle    
    mov cx,0
    mov dx,0                        
    mov al,2                        
    int 21h
 
 
 
 
    mov ah,9h                       
    mov dx,offset ms2                       
    int 21h
 
    mov ah,0ah                  
    mov dx,offset buf                   
    int 21h
 
    mov ah,9h                       
    mov dx,offset entr
    int 21h 
 
 
 
e5:
mov ah,09h
lea dx,ochibka5
int 21h
jmp start
 
 write:
    mov ah,40h
        mov bx,fsthandle
    lea dx,buf
    add dx,2
    mov ch,0
    mov cl,[buf+1]
    int 21h
    cmp eof,0
 
 
    mov ah,3Eh                  
    mov bx,fsthandle
    int 21h
 
 
 
    mov ah,4Ch
    int 21h
 
 
e2:
mov ah,09h
lea dx,ochibka2
int 21h
jmp start
 
e3:
mov ah,09h
lea dx,ochibka3
int 21h
jmp start   
 
 
code ends
end begin
Iren1993 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Писать строку в конец одного файла из двух YurIbr89 Помощь студентам 4 21.05.2011 19:15
FASM. Считать содержимое файла в строку и затем записать обратно в файл Zart Помощь студентам 0 19.04.2011 17:02
Записать строку в начало файла XPAiN Общие вопросы Delphi 6 26.01.2010 15:27
MinLines(f), которая вставляет строку минимальной длины в начало и конец файла ArtS Паскаль, Turbo Pascal, PascalABC.NET 0 24.05.2009 19:13