"Опыт дизассемблирования большой .com - программы" - читать интересную книгу автора (Крупник А.Б.)

sti ;06260 ;Turn ON Interrupts
b06261: cmp al,BYTE PTR es:d0046c ;06261
jz b06261 ;06266 ;Jump if equal (ZF=1)
mov al,BYTE PTR es:d0046c ;06268
dec cx ;0626c
jnz b06261 ;0626d ;Jump not equal(ZF=0)
pop ax ;0626f
out 61h,al ;06270 ;060-067:8024 keybrd contrlr
;
pop es ;06272
ret ;06273
s321 endp

╨шё.6


╧Ёш тшфх ¤Єюую ЄхъёЄр тючэшърхЄ фюурфър, ўЄю чфхё№ шфхЄ чтршьюфхщёЄтшх ё
юсырёЄ№■ фрээ√ї BIOSa . ─хщёЄтшЄхы№эю, т ЁхушёЄЁ es чрё√ырхЄё  ўшёыю 40,
Є.х. es сєфхЄ єърч√трЄ№ эр рфЁхё 400 - эрўрыю ¤Єющ юсырёЄш. ╥юуфр ёыхфє■∙шщ
тюяЁюё - ъръют ёь√ёы рфЁхёр 046ёh? ╦хуъю т√ ёэшЄ№, ўЄю яю ¤Єюьє рфЁхёє эрїю-
фшЄё  ёўхЄўшъ яЁхЁ√трэшщ юЄ ЄрщьхЁр. ┼ёыш ¤Єю Єръ, Єю ЇЁруьхэЄ, яЁштхфхэ-
э√щ эр Ёшё.6, юсЁхЄрхЄ ёь√ёы - юэ фрхЄ чрфхЁцъє эр ўшёыю яЁхЁ√трэшщ юЄ Єрщьх-
Ёр, чрфрээюх т ЁхушёЄЁх cx. ═ю хёыш тёх ёърчрээюх тхЁэю, Єю d0046c фюыцэю с√Є№
Ёртэю эх 46ёh, р яЁюёЄю 6ёh! ╚ фхщёЄтшЄхы№эю, хёыш яюёьюЄЁхЄ№ яюфяЁюуЁрььє s321
юЄырфўшъюь, Єю ёЄрэхЄ  ёэю, ўЄю тьхёЄю mov al,BYTE PTR es:d0046c т ЄхъёЄх
фюыцэю ёЄю Є№ mov al,6ch.
╚Єръ, ўЄюс√ шёяЁртшЄ№ ¤Єє ю°шсъє, эхюсїюфшью:
1. ╙фрышЄ№ шч эрўрыр яюфяЁюуЁрьь√ s12 яЁшётюхэшх d0046c equ 00046ch
2. ╧хЁхяшёрЄ№ яЁштхфхээ√щ эр Ёшё.6 ЇЁруьхэЄ s321 ёыхфє■∙шь юсЁрчюь:

mov ax,0040h ;06257
;
mov es,ax ;0625a
mov al,BYTE PTR es:006ch ;0625c
sti ;06260 ;Turn ON Interrupts
b06261: cmp al,BYTE PTR es:006ch ;06261
jz b06261 ;06266 ;Jump if equal (ZF=1)
mov al,BYTE PTR es:006ch ;06268
dec cx ;0626c
jnz b06261 ;0626d ;Jump not equal(ZF=0)
pop ax ;0626f
out 61h,al ;06270 ;060-067:8024 keybrd contrlr
;
pop es ;06272
ret ;06273
s321 endp

╨рёёьюЄЁшь тЄюЁющ яЁшьхЁ. ┬ ъюфх, т√фрээюь фшчрёёхьсыхЁюь, тёЄЁхЄшыё 
Єръющ ъєёюъ: