IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

> Файлы, не хочет создаваться, ошибка 03
Айра
сообщение 10.03.2009 20:44
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Всем здрасьте)
То ли я совсем слепая и не вижу глупой ошибки, то ли это мистикакая какая-то.
Не могу понять, почему в этом коде файл создается (тут надо было просто записать n чисел в файл)
include io.asm

stak segment
  db 32 dup (?)
stak ends
data segment
  file_name db 'file.dat','0'
  st_error1 db 'error_1 !','$'
  st_error2 db 'error_2 !','$'
  buf dw ?
  n dw ?
  handler dw ?
data ends
code segment
  begin proc
    assume ss: stak, ds: data, cs: code
    push ds
    mov ax,data
    mov ds,ax
    xor ax,ax
    push ax

    mov ah,3ch
    mov cx,0
    lea dx,file_name
    int 21h
    jc error1
    mov handler,ax
    jmp cont

error1: 
    mov ah,9h
    lea dx,st_error1
    int 21h
    jmp exit

cont:
    inint n
    mov cx,n
a1: push cx
    inint buf
    mov ah,40h
    mov bx,handler
    mov cx,2
    lea dx,buf
    int 21h
    jc error2
    cmp ax,2
    jne error2
    pop cx
    loop a1
    jmp close

error2: 
    outint ax
    mov ah,9h
    lea dx,st_error2
    int 21h

close:
    mov ah,3eh
    mov bx,handler
    int 21h
exit:
    mov ah,4ch
    int 21h
  begin endp
code ends
end begin


а тут ошибка 3 (здесь надо в файл g.dat поместить четные элементы, в h.dat - нечетные)
include io.asm

stak segment
  db 32 dup (?)
stak ends
data segment
  file_name1 db 'g.dat','0'
  file_name2 db 'h.dat','0'
  error1 db 'Σб⌐Ѕ ЎС Я«єсбЎ, ¬«с «Φїн¬ї - ','$'  ; файл не создан, код ошибки - 
  error2 db '«Φїн¬б »αї τΓСЎїї\єб»їЯї, ¬«с «Φїн¬ї - ','$'  ; ошибка чтения\записи, код ошибки - 
  s1 db 'ууСсїΓС ¬«ЅїτСЯΓу« φЅСјСЎΓ«у: ','$' ; введите количество элементов
  s2 db 'ууСсїΓС τїЯЅ«: ','$'  ; введите число
  a dw ?
  n dw ?
  dva dw 2
  handler dw ?
  handler1 dw ?
  handler2 dw ?
  vvd macro x
    push ax
    mov ah,9h
    lea dx,x
    int 21h
    pop ax
  endm
data ends
code segment
  begin proc
    assume ss: stak, ds: data, cs: code
    push ds
    mov ax,data
    mov ds,ax
    xor ax,ax
    push ax

    mov ah,3ch
    mov cx,0
    lea dx,file_name1
    int 21h
    jc err1
    mov handler1,ax
 
    mov ah,3ch
    mov cx,0
    lea dx,file_name2
    int 21h
    jc err1
    mov handler2,ax
    jmp cont

err1:
    vvd error1
    outint ax
    jmp exit
   
cont:
    vvd s1
    inint n
    mov cx,n
a1: push cx
    mov ax,handler1
    mov handler,ax
    inint a
    xor dx,dx ; глупое ошибко найдено )
    mov ax,a
    div dva
    cmp dx,0
    je a2
    mov ax,handler2
    mov handler,ax
a2: mov ah,40h
    mov bx,handler
    mov cx,2
    lea dx,a
    int 21h
    jc err2
    cmp ax,2
    jne err2
    pop cx
    loop a1
    jmp close

err2: 
    vvd error2
    outint ax
    
close:
    mov ah,3eh
    mov bx,handler1
    int 21h

    mov ah,3eh
    mov bx,handler2
    int 21h

exit:
    mov ah,4ch
    int 21h
  begin endp
code ends
end begin


добавлено: да, забыла, компилятор - tasm, OC - виста, оба кода запускаются с флешки, и файлы, создаются там же, если это имеет значение..

Сообщение отредактировано: Айра - 10.03.2009 21:56
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 30.07.2025 22:57
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"