Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
10 / 10 / 1
Регистрация: 04.11.2009
Сообщений: 147
1

Запрещен доступ к файлу (ошибка при записи в файл)

01.12.2011, 22:50. Показов 2936. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Записываю в файл посимвольно (код прерывания 40h), появляется вот такая ошибка(CF=1) в AX(05h). Я в недоумении... Что вообще может привести к подобной ошибке? Никаких ограничений на файле вроде не стоит...Права все есть.
Подскажите пожалуйста! Предупреждаю, что я новичок и прошу снисходительно относится ^_^.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2011, 22:50
Ответы с готовыми решениями:

Ошибка записи в файл: процесс не может получить доступ к файлу
Доброго всем, пишу ну или пытаюсь написать программу для редактирования текста в общем трудность...

Возникает исключение при записи в txt файл (Процесс не может получить доступ к файлу)
Прив! При исполнении следующего кода using System; using System.Collections.Generic; using...

Доступ к файлу запрещен
Я создал общую папку на Win 7 Разрешил общий доступ без логина и пароля, дал всем пользователям...

Запись в файл hosts - доступ запрещен
Написал консольную программу,которая получает доступ к файлу hosts и добавляет сайты,на которые...

5
Клюг
7675 / 3190 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
01.12.2011, 23:54 2
А открываете файл как? int 21h/AX=3D02?
1
10 / 10 / 1
Регистрация: 04.11.2009
Сообщений: 147
02.12.2011, 20:18  [ТС] 3
Уже сама нашла свою ошибку) Точно так...открывала через 3d00h=)

Добавлено через 20 часов 23 минуты
А не поможете с другой проблемой? Не могу разобраться с выводом числа..
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
;                           -------Ïåðåâîä ÷èñëà èç AX â ñòðîêó
PEREVOD Proc near                              
      xor  cx, cx
      mov  bx, 10                  ;Îñíîâàíèå ÷èñëà
      mov  di, 0
del:  
      xor  dx, dx                  ;Îáíóëÿåì dx, äåëèì òîëüêî òî, ÷òî â AX(÷èñëî)
      div  bx
      mov  Out_2[di], dl
      inc  di
      inc  cx                      ;Óâåëè÷èâàåì çíà÷åíèå äëèíû ÷èñëà íà åäèíèöó        
      cmp  ax, 0                   ;Ñðàâíèâàåì ÷àñòíî ñ íóëåì
      jnz  del                     ;Åñëè íå íîëü, òî ñíîâà äåëèì åãî
vvd:
      mov  dl, out_2[di]
      add  dl, '0'
      mov  out_2[di], dl
      mov  dx, offset out_2[di]
      call write
      dec  di
      loop vvd                     ;Ñòîëüêî ðàç, ñêîëüêî äëèíà ÷èñëà
      ret            
PEREVOD endp                     
;                           -------Âûâîä â ôàéë
WRITE Proc near                              
      mov  bx, handle2      
      mov  cx, 1
      mov  ax, 4000h
      int  21h
      ret            
WRITE endp       
.....
data segment
  out_2    db 10 dup(0)
Вот такое чудо написала..Вначале писала через стек, но не захотел работать. Решила через массив попробовать..Пишет в файле что угодно, но только не цифры
0
Клюг
7675 / 3190 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
02.12.2011, 21:34 4
Как-то так, сделал через стек:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
        out_dec:
                xor si, si
                mov bx, 10
 
        out_dec_div:
                xor dx, dx
                div bx
                or dx, 30h            ;остаток от деления
                push dx               ;сохраняем в стеке
                inc si                ;считаем кол-во цифр
                or ax, ax             ;пока не 0 - делим
                jnz out_dec_div
; готовимся к записи 
        mov ax, 4000h
        mov bx, handle2 
            mov dx, offset out_2
            mov cx,1
        out_dec_out:
                pop     word ptr out_2      ;извлекаем из стека
                int 21h              
            dec si
                jnz out_dec_out       ;и выводим подсчитаенное кол-во цифр
;........... 
data segment
  out_2    dw ?
1
10 / 10 / 1
Регистрация: 04.11.2009
Сообщений: 147
02.12.2011, 21:40  [ТС] 5
Charles Kludge, Спасибо, только у меня со стеком не получается..Команды push и pop ведут к зацикливанию программы..Я уж не рискнула их больше использовать.. Ну а вообще на ваш взгляд, логически в моем коде все верно?
0
Клюг
7675 / 3190 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
02.12.2011, 21:59 6
можно и без стека:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
        out_dec:
                mov     si, out_2_end
                mov     bx, 10
                xor cx,cx
                std
        out_dec_div:
                xor     dx, dx
                div     bx
                or  dx, 30h            ;остаток от деления
                mov [si],dl          ;сохраняем
                inc     cx                ;считаем кол-во цифр
                dec si
                or  ax, ax             ;пока не 0 - делим
                jnz     out_dec_div
; готовимся к записи 
        mov ax, 4000h
        mov bx, handle2 
            mov dx, si
            inc dx
        out_dec_out:
                int 21h        ;и выводим подсчитаенное кол-во цифр      
;........... 
;data segment
  out_2    db 5 dup(?)
out_2_end   = $
1
02.12.2011, 21:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.12.2011, 21:59
Помогаю со студенческими работами здесь

Ошибка 403. Доступ запрещен
Выложил сайт на хостинг ( Джино ). Есть индексный файл. При нажатии на ссылку которая...

Как изменить настройки UAC и учетной записи, если доступ запрещен и из супер-пользователя ?
Когда пытаюсь изменить настройки UAC из обычной учетки, просто не нажимается кнопка ОК в окошке с...

Ошибка: Процесс не может получить доступ к файлу, так как этот файл занят другим процессом
Добрый день, в данном коде необходимо переместить файл из одной папки в другую. При try в одну...

Безопасность в интернете - ошибка 403 Доступ запрещен! Причина: С вашего ip зарегистрирована аномальная активность.
не могу зайти в контакт и некоторые сайты через мозилу помогите пожалуйста, и пожалуйста объясните...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru