ПРивет всем!
у меня вопрос... у Калашникова есть пример программы которая выполняясь перезаписывает сама себя в памяти.
Сама листинг есть по ссылке
http://www.kalashnikoff.ru/Assembler/issues/encl/009/PROG09.asm.htm
МОй вопрос таков:
там есть код
Open_file proc
cmp Handle,0FFFFh ; Процедура открытия файла для чтения,
jne Quit_open
mov ax,3D00h
int 21h
mov Handle,ax
ret
Quit_open:
stc
ret
Handle dw 0FFFFh <--------
Open_file endp
Вот это непонятно откуда тут выясняется открыт ли файл ??? ведь переменную Handle мы придумали сами и присвоили ей значение Handle dw 0FFFFh
Такое сравнение всегда будет верно, если Handle не изменится, а в ходе программы на процедуру открытия файлы возврата больше не делается, то есть он открывается 1 раз и всё.
смысл тогда в это проверке?
у меня вопрос... у Калашникова есть пример программы которая выполняясь перезаписывает сама себя в памяти.
Сама листинг есть по ссылке
http://www.kalashnikoff.ru/Assembler/issues/encl/009/PROG09.asm.htm
МОй вопрос таков:
там есть код
Open_file proc
cmp Handle,0FFFFh ; Процедура открытия файла для чтения,
jne Quit_open
mov ax,3D00h
int 21h
mov Handle,ax
ret
Quit_open:
stc
ret
Handle dw 0FFFFh <--------
Open_file endp
Вот это непонятно откуда тут выясняется открыт ли файл ??? ведь переменную Handle мы придумали сами и присвоили ей значение Handle dw 0FFFFh
Такое сравнение всегда будет верно, если Handle не изменится, а в ходе программы на процедуру открытия файлы возврата больше не делается, то есть он открывается 1 раз и всё.
смысл тогда в это проверке?