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

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

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

 
 Ответить  Открыть новую тему 
> Файлы, не хочет создаваться, ошибка 03
сообщение
Сообщение #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 - виста, оба кода запускаются с флешки, и файлы, создаются там же, если это имеет значение..

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


Гость






Угу, мистика... Как у тебя в первом случае это работало - непонятно. Вообще-то надо завершать строку нулем (это все-таки ASCIIZ-строка), а не символом '0':
  file_name1 db 'g.dat',0
file_name2 db 'h.dat',0
теперь оба файла прекрасно создаются...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Профи
****

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

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


ээ.. дык ноль там, несколько раз проверяла.. только вот нам говорили, что его в апострофы брать надо..
*пошла проверять без апострофов

Добавлено через 1 мин.
создался без них.. спасибо smile.gif буду разбирать дальнейшие ошибки..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 13.11.2019 1:34
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name