PDA

View Full Version : مشکل در ایجاد فایل



Elrond
جمعه 02 بهمن 1388, 22:04 عصر
در این برنامه فایل ایجاد نمی شود.مشکلش کجاست؟



; You may customize this and other start-up templates;
; The location of this template is c:\emu8086\inc\0_com_template.txt
org 100h
clearscrean macro
mov ah,06
mov al,00
mov bh,07
mov ch,00
mov cl,00
mov dh,24
mov dl,79
int 10h
endm
;------------
getkey macro
call getch
endm
;------------
screanready macro
clearscrean
;createfile
mov cx,0
mov si,offset str1
getkey
endm
;----------------
;----------------
createfile macro
mov ah,3ch
;mov bx,cx
mov cx,0
lea dx,fname
int 21h
jc eror1
mov mytext,ax
jmp endcreatefile
eror1:
mov dl,'a'
call eror
endcreatefile:
endm
;----------------
writefile macro
mov dx,offset totaltext1[0]
mov ah,40h
mov bx,mytext
mov cx,100
int 21h
jnc endwritefile
eror4:
mov dl,'b'
call eror
jmp endwritefile
endwritefile:
endm
;----------------
closefile macro
mov ah,3eh
mov bx,mytext
int 21h
jnc endclosefile
;jmp endclosefile
;eror2:
mov dl,'c'
call eror
endclosefile:
endm
;----------------
openfile macro
mov ah,3dh
;mov bl,al
mov al,0
mov dx,offset fname
int 21h
jc eror3
mov mytext,ax
jmp endopenfile
eror3:
mov dl,'d'
call eror
endopenfile:
endm
;---------------
readfile macro
mov ah,3fh
mov bx,mytext
mov cx,100
mov dx,offset totaltext2[0]
int 21h
jnc endread
mov dl,'e'
call eror
endread:
endm
;----------------
.data
.model small
mytext dw ?
fname db 'D:\namefile.ASC',0
str1 db 80 dup (?)
str2 db 80 dup (?)
str3 db 80 dup (?)
str4 db 80 dup (?)
str5 db 80 dup (?)
str6 db 80 dup (?)
str7 db 80 dup (?)
str8 db 80 dup (?)
str9 db 80 dup (?)
str10 db 80 dup (?)
str11 db 80 dup (?)
str12 db 80 dup (?)
str13 db 80 dup (?)
str14 db 80 dup (?)
str15 db 80 dup (?)
str16 db 80 dup (?)
str17 db 80 dup (?)
str18 db 80 dup (?)
str19 db 80 dup (?)
str20 db 80 dup (?)
str21 db 80 dup (?)
str22 db 80 dup (?)
str23 db 80 dup (?)
str24 db 80 dup (?)
str25 db 80 dup (?)
totaltext1 db 2000 dup (?)
totaltext2 db 2000 dup (?)
counter dw 0
.code
.startup
screanready
finprogram:
.exit
;---------------
getch proc
while:
mov ah,07
int 21h
call saver
;call keycompare
; cmp cx,24
mov dl,al
mov ah,02
int 21h
call keycompare
jmp while
getch endp
;---------------
situating proc
mov ah,03
mov bh,00
int 10h
cmp dl,24
jna endsituating
inc dh
cmp dh,80
jne endsituating
call endprogram
endsituating:
ret
situating endp
;------------------
keycompare proc
mov ah,01
int 16h
cmp al,13
je enter1
cmp al,8
je backspace1
cmp al,27
jne saveo;endkeycompare
cmp ah,1
je esc1
;jmp endkeycompare
saveo:
cmp al,47
je save1
jmp endkeycompare
enter1:
call enter
jmp endkeycompare
backspace1:
call backspace
jmp endkeycompare
esc1:
call escape
jmp endkeycompare
save1:
cmp ah,53
; jne endkeycompare
call memory
jmp endkeycompare
endkeycompare:
ret
keycompare endp
;----------------
endprogram proc
jmp finprogram
ret
endprogram endp
;--------------
enter proc
;mov bh,dh
mov ah,02
mov bh,00
inc dh
mov dl,0
int 10h
ret
enter endp
;--------------
backspace proc
mov ah,02
mov dl,' '
int 21h
mov ah,03
mov bh,00
int 10h
mov ah,02
mov bh,00
dec dl
int 10h
ret
backspace endp
;----------------
escape proc
;call endprogram
mov si,offset str1
mov cx,22
for:
mov dl,[si]
mov ah,02
int 21h
inc si
loop for
call endprogram
ret
escape endp
;--------------
saver proc
mov ah,03
mov bh,00
int 10h
cmp dh,0
je w1
cmp dh,1
je w2
cmp dh,2
je w3
cmp dh,3
je w4
cmp dh,4
je w5
cmp dh,5
je w6
cmp dh,6
je w7
cmp dh,7
je w8
cmp dh,8
je w9
cmp dh,9
je w10
cmp dh,10
je w11
cmp dh,11
je w12
cmp dh,12
je w13
cmp dh,13
je w14
cmp dh,14
je w15
cmp dh,15
je w16
cmp dh,16
je w17
cmp dh,17
je w18
cmp dh,18
je w19
cmp dh,19
je w20
cmp dh,20
je w21
cmp dh,21
je w22
cmp dh,22
je w23
cmp dh,23
je w24
cmp dh,24
je w25
w1:
mov bl,dl
mov bh,0
mov si,bx
mov str1[si],al
jmp endsaver
;inc si
w2:
mov bl,dl
mov bh,0
mov si,bx
mov str2[si],al
jmp endsaver
w3:
mov bl,dl
mov bh,0
mov si,bx
mov str3[si],al
jmp endsaver
w4:
mov bl,dl
mov bh,0
mov si,bx
mov str4[si],al
jmp endsaver
w5:
mov bl,dl
mov bh,0
mov si,bx
mov str5[si],al
jmp endsaver
w6:
mov bl,dl
mov bh,0
mov si,bx
mov str6[si],al
jmp endsaver
w7:
mov bl,dl
mov bh,0
mov si,bx
mov str7[si],al
jmp endsaver
w8:
mov bl,dl
mov bh,0
mov si,bx
mov str8[si],al
jmp endsaver
w9:
mov bl,dl
mov bh,0
mov si,bx
mov str9[si],al
jmp endsaver
w10:
mov bl,dl
mov bh,0
mov si,bx
mov str10[si],al
jmp endsaver
w11:
mov bl,dl
mov bh,0
mov si,bx
mov str11[si],al
jmp endsaver
w12:
mov bl,dl
mov dh,0
mov si,bx
mov str12[si],al
jmp endsaver
w13:
mov bl,dl
mov bh,0
mov si,bx
mov str13[si],al
jmp endsaver
w14:
mov bl,dl
mov bh,0
mov si,bx
mov str14[si],al
jmp endsaver
w15:
mov bl,dl
mov bh,0
mov si,bx
mov str15[si],al
jmp endsaver
w16:
mov bl,dl
mov bh,0
mov si,bx
mov str16[si],al
jmp endsaver
w17:
mov bl,dl
mov bh,0
mov si,bx
mov str17[si],al
jmp endsaver
w18:
mov bl,dl
mov bh,0
mov si,bx
mov str18[si],al
jmp endsaver
w19:
mov bl,dl
mov bh,0
mov si,bx
mov str19[si],al
jmp endsaver
w20:
mov bl,dl
mov bh,0
mov si,bx
mov str20[si],al
jmp endsaver
w21:
mov bl,dl
mov bh,0
mov si,bx
mov str21[si],al
jmp endsaver
w22:
mov bl,dl
mov bh,0
mov si,bx
mov str22[si],al
jmp endsaver
w23:
mov bl,dl
mov bh,0
mov si,bx
mov str23[si],al
jmp endsaver
w24:
mov bl,dl
mov bh,0
mov si,bx
mov str24[si],al
jmp endsaver
w25:
mov bl,dl
mov bh,0
mov si,bx
mov str25[si],al
jmp endsaver
endsaver:
ret
saver endp
;---------------
stacktransmiter proc
for3:
push [si]
dec si
loop for3
mov si,0
ret
stacktransmiter endp
;----------------
memory proc
mov si,offset str1[0]
mov di,offset totaltext[0]
mov cx,80
m1:
mov al,[si]
mov [di],al
inc si
inc di
loop m1
mov si,offset str2[0]
mov cx,80
m2:
mov al,[si]
mov [di],al
inc si
inc di
loop m2
mov si,offset str3[0]
mov cx,80
m3:
mov al,[si]
mov [di],al
inc si
inc di
loop m3

mov si,offset str4[0]
mov cx,80
m4:
mov al,[si]
mov [di],al
inc si
inc di
loop m4

mov si,offset str5[0]
mov cx,80
m5:
mov al,[si]
mov [di],al
inc si
inc di
loop m5

mov si,offset str6[0]
mov cx,80
m6:
mov al,[si]
mov [di],al
inc si
inc di
loop m6

mov si,offset str7[0]
mov cx,80
m7:
mov al,[si]
mov [di],al
inc si
inc di
loop m7

mov si,offset str8[0]
mov cx,80
m8:
mov al,[si]
mov [di],al
inc si
inc di
loop m8

mov si,offset str9[0]
mov cx,80
m9:
mov al,[si]
mov [di],al
inc si
inc di
loop m9

mov si,offset str10[0]
mov cx,80
m10:
mov al,[si]
mov [di],al
inc si
inc di
loop m10

mov si,offset str11[0]
mov cx,80
m11:
mov al,[si]
mov [di],al
inc si
inc di
loop m11

mov si,offset str12[0]
mov cx,80
m12:
mov al,[si]
mov [di],al
inc si
inc di
loop m12

mov si,offset str13[0]
mov cx,80
m13:
mov al,[si]
mov [di],al
inc si
inc di
loop m13

mov si,offset str14[0]
mov cx,80
m14:
mov al,[si]
mov [di],al
inc si
inc di
loop m14

mov si,offset str15[0]
mov cx,80
m15:
mov al,[si]
mov [di],al
inc si
inc di
loop m15

mov si,offset str16[0]
mov cx,80
m16:
mov al,[si]
mov [di],al
inc si
inc di
loop m16

mov si,offset str17[0]
mov cx,80
m17:
mov al,[si]
mov [di],al
inc si
inc di
loop m17

mov si,offset str18[0]
mov cx,80
m18:
mov al,[si]
mov [di],al
inc si
inc di
loop m18

mov si,offset str19[0]
mov cx,80
m19:
mov al,[si]
mov [di],al
inc si
inc di
loop m19

mov si,offset str20[0]
mov cx,80
m20:
mov al,[si]
mov [di],al
inc si
inc di
loop m20

mov si,offset str21[0]
mov cx,80
m21:
mov al,[si]
mov [di],al
inc si
inc di
loop m21
mov si,offset str22[0]
mov cx,80
m22:
mov al,[si]
mov [di],al
inc si
inc di
loop m22
mov si,offset str23[0]
mov cx,80
m23:
mov al,[si]
mov [di],al
inc si
inc di
loop m23
mov si,offset str24[0]
mov cx,80
m24:
mov al,[si]
mov [di],al
inc si
inc di
loop m24
mov si,offset str25[0]
mov cx,80
m25:
mov al,[si]
mov [di],al
inc si
inc di
loop m25

createfile
;openfile
writefile
closefile
openfile
readfile
mov ah,02
mov dl,al
int 21h
; closefile
;mov cx,100
;test1:
;mov di,offset totaltext[0]
;test1:
;mov dl,[di]
;inc di
;mov ah,02
;int 21h
;loop test1
ret
memory endp
;--------------
eror proc
;mov dl,'j'
mov ah,02
int 21h
ret
eror endp
;--------------
end
ret