То ли я совсем слепая и не вижу глупой ошибки, то ли это мистикакая какая-то.
Не могу понять, почему в этом коде файл создается (тут надо было просто записать 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 - виста, оба кода запускаются с флешки, и файлы, создаются там же, если это имеет значение..