.MODEL SMALL
.STACK 64
data_seg segment
mes db "Enter name of file:$"
mes1 db 13, 10, "Your file:", 13, 10, "$"
des dw 0
buf db 255,?,4096 dup(?)
data_seg ends
code_seg segment
assume cs:code_seg, ds:data_seg
Подскажите, пожалуйста..
код:
code_seg segment
assume cs:code_seg, ds:code_seg, ss:code_seg
org 100h
start:
mov ah, 9
mov dx, offset mes
int 21h
MOV AH,0AH
LEA DX,[buf]
INT 21H
mov BX, DX
add BL, [buf+1]
;adc BH, 0
mov byte [BX+2], 0
mov ah,3dh
mov al,2
mov dx,offset buf+2
int 21h
mov bx, ax
mov [des],AX
mov AH, 3Fh
;mov BX, [des]
mov DX, offset buf+2
mov CX, 4096
int 21h
mov CX, AX
mov BX, DX
mov DX, offset mes1
mov AH, 09h
int 21h
label1 proc near
mov DX, 13,10
inc BX
label1 endp
m:
mov AH, 02h
mov DL, [bx]
cmp DL, 13,10
je call label1
inc BX
int 21h
loop m
mov AH, 3Eh
;mov BX, [des]
int 21h
xor AH, AH
int 16h
mov ax, 4c00h
int 21h
mes db "Enter name of file:$"
mes1 db 13, 10, "Your file:", 13, 10, "$"
des dw 0
buf db 255,?,4096 dup(?)
code_seg ends
end start
ret
очень рекомендую . сильно помогает . )
Цитата:
assume cs:code_seg, ds:code_seg, ss:code_seg
у сегментов должны быть разные имена.
вообще, начало файла должно выглядеть примерно так:
Код:
Код:
label1 proc near
mov DX, 13,10
inc BX
label1 endp
mov DX, 13,10
inc BX
label1 endp
эт что, функция или метка? если метка, то proc и endp не нужны. если функция, то перенести бы ее отсюда куда-нибудь и добавить ret. а вот в конце файла ret убрать. он нужен только для выхода из вызванных функций.
Цитата:
je call label1
есои функция - call, если метка - je. третьего не дано.
Цитата:
loop m
до какого момента он будет работать? вижу, что с файла пытаются считать 4к байт, но если их там нет или файл не открылся, то в АХ может вернуться и 00 и 05. нужна проверка. лучше временно сохранить AX в стек, а после 09h извлечь, потому что, мало ли что эта 09h в другие ресгистры пишет. а вообще, лучше все это удалить и вдумчиво написать заново.