XAN
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Кстати, читая себя саму в память эта программа перетрёт значение Handle изначальным, так что толку от этой переменной никакого. Чтобы этого избежать я полагаю надо метку finish equ $ так чтобы исключить перезапись переменной Handle Например, в блоке данных ................ message_ok db 'Все нормально!',0Ah,0Dh,'$' finish equ $ Handle dw 0FFFFh ................... Я переписал эту программу вот на такую... Код: cseg segment assume cs:cseg,ds:cseg,es:cseg,ss:cseg org 100h start: mov dx,offset file_name mov ax,3D00h int 21h jc error_file mov bx,ax mov ah,3Fh mov cx,offset finish-100h mov dx,offset start int 21h mov dx,offset readf mov ah,9 int 21h mov ah,3Eh int 21h mov dx,offset closef mov ah,9 int 21h mov dx,offset message_ok mov ah,9 int 21h jmp end_ error_file: mov dx,offset error mov ah,9 int 21h end_: ret ;ДАННЫЕ file_name db 'l.com',0 error db 'Error open file',0Ah,0Dh,'$' readf db 'File read',0Ah,0Dh,'$' closef db 'File closed',0Ah,0Dh,'$' message_ok db 'Все нормально!',0Ah,0Dh,'$' finish equ $ cseg ends end start | |