- •0. Введение
- •1. Идентификация пользователя: "свой" - "чужой"?
- •50%, То все несоответствия можно отнести за счет случайных факторов).
- •2. Может ли компьютер стать графологом?
- •3. Как защититься от "размножения"
- •4. Защита от исследований.
- •25H и 26h прерываний (обслуживающих ввод-вывод информации на внешние
- •8086/8088 (А точнее, японского аналога v20) существует еще один тип
- •6. Исполняемый модуль - что можно сделать
- •7. Как очистить программу от вирусов и
- •8. Проверка усвоенного
- •9. Анонс вместо заключения
- •2 Цилиндрах для размещения ключевой информации. Дискета не копируется
- •40. Там наворочена всякая ерунда со стандартными параметрами
8. Проверка усвоенного
Если вы внимательно прочитали весь предшествующий материал, то
справиться с двумя головоломками будет несложно. Если же задания
оказались вам не под силу, вновь проштудируйте статьи.
ГОЛОВОЛОМКА 1
На рис. 8.1 приведена программа, которая не работает под
отладчиком в пошаговом режиме. Проверьте это, оттранслировав и
запустив ее, например, под Turbo Debugger. Нажимая клавишу F8 (без
захода в п/п), благополучно доберетесь до ее конца. Если же попробуете
пройти программу в потактовом режиме (клавиша F7), с заходом в
подпрограмму "DEL", то после выполнения оператора STOSW продолжение
будет невозможно. Почему?
ГОЛОВОЛОМКА 2
Программа на рис. 8.2 также не работает в пошаговом режиме, но
причина здесь иная. В чем тут дело?
ГОЛОВОЛОМКА 1
-------------------------------------------------------------¬
¦ cseg segment para public 'code' ¦
¦ assume cs:cseg ¦
¦ exam proc ¦
¦ start: ¦
¦ jmp frwd ¦
¦ del: ¦
¦ pushf ¦
¦ cld ¦
¦ mov ax,cs ¦
¦ mov es,ax ¦
¦ rep stosw ¦
¦ popf ¦
¦ ret ¦
¦ frwd: ¦
¦ push cs ¦
¦ pop ds ¦
¦ mov cx,12 ¦
¦ mov di,offset start ¦
¦ call del ¦
¦ mov dx,offset msg ¦
¦ mov ah,9 ¦
¦ int 21h ¦
¦ mov ax,4c00h ¦
¦ int 21h ¦
¦ msg db 'Hellow, boys!',0ah,0dh,'$' ¦
¦ exam endp ¦
¦ cseg ends ¦
¦ end start ¦
L-------------------------------------------------------------
рис. 8.1
ГОЛОВОЛОМКА 2
-------------------------------------------------------------¬
¦ TEXT: segment byte public 'CODE' ¦
¦ assume cs:TEXT ¦
¦ org 100h ¦
¦ ¦
¦ start: mov dx,offset prv ¦
¦ mov ah,9 ¦
¦ int 21h ¦
¦ db 2eh ¦
¦ pushf ¦
¦ pop ax ¦
¦ sahf ¦
¦ mov ah,9 ¦
¦ jb Glk ¦
¦ mov dx,offset mes1 ¦
¦ int 21h ¦
¦ mov ax,4c00h ¦
¦ int 21h ¦
¦ Glk: ¦
¦ mov dx,offset mes2 ¦
¦ int 21h ¦
¦ mov ax,4c01h ¦
¦ int 21h ¦
¦ ¦
¦ prv label byte ¦
¦ db 'dbtest',0ah,0dh,024h ¦
¦ ¦
¦ mes1 label byte ¦
¦ db 'Ok',0ah,0dh,24h ¦
¦ ¦
¦ mes2 label byte ¦
¦ db 'Trace',0ah,0dh,24h ¦
¦ ¦
¦ TEXT ends ¦
¦ end start ¦
L-------------------------------------------------------------
рис. 8.2