forked from KolibriOS/kolibrios
…
┬тхфхэшх. koldbg яЁхфёЄрты хЄ ёюсющ шэЄхЁръЄштэ√щ юЄырфўшъ фы юяхЁрЎшюээющ ёшёЄхь√ KolibriOS. └тЄюЁ яЁюуЁрьь√ - ┼тухэшщ ├Ёхўэшъют (Diamond). ─рээр фюъєьхэЄрЎш юяшё√трхЄ тючьюцэюёЄш юЄырфўшър ш ЁрсюЄє ё эшь. ┼ёыш є трё хёЄ№ ъръшх-ышсю тюяЁюё√ яю ЁрсюЄх ё яЁюуЁрььющ шыш эєцэ√ ъръшх-Єю тючьюцэюёЄш юЄырфўшър, ъюЄюЁ√ї х∙╕ эхЄ, юсЁр∙рщЄхё№ эр ЇюЁєь board.kolibrios.org т ёююЄтхЄёЄтє■∙є■ Єхьє - http://board.kolibrios.org/viewtopic.php?f=45&t=358, шыш яю рфЁхёє ртЄюЁр - mailto:diamondz@land.ru. ╬с∙хх юяшёрэшх. ┬ ърцф√щ ьюьхэЄ тЁхьхэш koldbg ьюцхЄ юЄырцштрЄ№ Єюы№ъю юфэє яЁюуЁрььє. ═рчют╕ь Єръє■ яЁюуЁрььє чруЁєцхээющ фы юЄырфъш. ┼ёыш эшърър яЁюуЁрььр эх чруЁєцхэр, рсёюы■Єэюх сюы№°шэёЄтю фхщёЄтшщ яю юЄырфъх эхфюёЄєяэю. koldbg єяЁрты хЄё ъюьрэфэющ ёЄЁюъющ, ттюфшьющ ё ъыртшрЄєЁ√. ╩юьрэфэр ёЄЁюър шчюсЁрцрхЄё т эшцэхщ ўрёЄш юъэр юЄырфўшър. ╬сЁрсрЄ√тр■Єё ёЄрэфрЁЄэ√х ъыртш°ш ттюфр Backspace, Delete, Home, End, ёЄЁхыъш тыхтю/тяЁртю, ёЄЁхыъш ттхЁї/тэшч (яЁюъЁєўштрэшх шёЄюЁшш ъюьрэф). ╩юьрэф√ эхўєтёЄтшЄхы№э√ ъ ЁхушёЄЁє ёшьтюыют. ┬ ърўхёЄтх ЁрчфхышЄхы шёяюы№чєхЄё яЁюшчтюы№эюх эхэєыхтюх ўшёыю яЁюсхыют. ┬ ы■сющ ьюьхэЄ юЄырфўшъ ьюцэю чртхЁ°шЄ№ ъюьрэфющ "quit" (схч рЁуєьхэЄют). ┬яЁюўхь, ьюцэю ш яЁюёЄю эрцрЄ№ эр ъэюяъє чръЁ√Єш т яЁртюь тхЁїэхь єуыє юъэр. ╟ряєёъ юЄырфўшър схч ярЁрьхЄЁют ъюьрэфэющ ёЄЁюъш яЁштюфшЄ ъ Єюьє, ўЄю эшърър яЁюуЁрььр эх чруЁєцхэр. ╥ръцх koldbg ьюцэю чряєёърЄ№ ё ъюьрэфэющ ёЄЁюъющ, т ¤Єюь ёыєўрх юэ яюя√ЄрхЄё чруЁєчшЄ№ яЁюуЁрььє ё шьхэхь, єърчрээ√ь ъръ яхЁт√щ рЁуєьхэЄ ъюьрэфэющ ёЄЁюъш, ш ярЁрьхЄЁрьш, єърчрээ√ьш ъръ яюёыхфє■∙шх (хёыш юэш хёЄ№). ┼ёыш эшърър яЁюуЁрььр эх чруЁєцхэр, Єю ьюцэю чруЁєчшЄ№ яЁюуЁрььє ъюьрэфющ load: load <яюыэюх шь шёяюыэ хьюую Їрщыр> [<рЁуєьхэЄ√>] ═ряЁшьхЁ: load /sys/example LOAD /sys/aclock w200 h200 LoaD /hd0/1/menuetos/dosbox/dosbox ┬ё╕, ўЄю ёЄюшЄ яюёых яхЁтюую яЁюсхыр яюёых шьхэш шёяюыэ хьюую Їрщыр, фюёыютэю яхЁхфр╕Єё яЁюуЁрььх т ърўхёЄтх ъюьрэфэющ ёЄЁюъш. ╩юьрэфр load ёююс∙рхЄ ю Ёхчєы№ЄрЄх т юъэх ёююс∙хэшщ (эхьэюую т√°х юъэр ъюьрэфэющ ёЄЁюъш). ┼ёыш яЁюуЁрььє єфрыюё№ чруЁєчшЄ№, Єю юс ¤Єюь яю тшЄё ёююЄтхЄёЄтє■∙хх ёююс∙хэшх; хёыш эх єфрыюё№, Єю т ёююс∙хэшш сєфхЄ єърчрэр яЁшўшэр ю°шсъш. ═ршсюыхх тхЁю Єэр - "file not found", хёыш эхяЁртшы№эю єърчрэю шь Їрщыр. ╬Єырфўшъ ьюцхЄ чруЁєцрЄ№ Їрщы√ ё шэЇюЁьрЎшхщ юс шьхэрї т яЁюуЁрььх (ьхЄъш, уыюсры№э√х яхЁхьхээ√х) - ЄхъёЄют√х Їрщы√, ърцфр ёЄЁюър ъюЄюЁ√ї шьххЄ тшф 0x<hex_чэрўхэшх_рфЁхёр> <шь > (ёЄЁюъш, эх шьх■∙шх Єръющ тшф, шуэюЁшЁє■Єё ). ╥ръющ Їрщы ьюцхЄ с√Є№ ёючфрэ тЁєўэє■ шыш ёухэхЁшЁютрэ ртЄюьрЄшўхёъш яЁш ъюьяшы Ўшш шёїюфэшър fasm'юь. ▀тэр чруЁєчър юёє∙хёЄты хЄё ъюьрэфющ load-symbols: load-symbols <яюыэюх шь Їрщыр ёшьтюыют> ╩Ёюьх Єюую, яЁш т√яюыэхэшш ъюьрэф√ load юЄырфўшъ яЁютхЁ хЄ эрышўшх Їрщыр ё Єръшь цх шьхэхь, ъръ чруЁєцрхь√щ сшэрЁэшъ, ш Ёрё°шЁхэшхь .dbg (/sys/example.dbg фы яхЁтюую шч яЁшьхЁют т√°х), ш хёыш Єръющ хёЄ№, чруЁєцрхЄ хую ртЄюьрЄшўхёъш (т√фртр ёююс∙хэшх "Symbols loaded", хёыш тё╕ т яюЁ фъх). ╠юцхЄ ёыєўшЄ№ё Єръ, ўЄю чруЁєцхээр яЁюуЁрььр єяръютрэр. ╬с∙шщ яЁшэЎшя єяръютъш яЁюуЁрьь ёыхфє■∙шщ: ёэрўрыр шёїюфэ√щ Їрщы яръєхЄё (ъръшь-эшсєф№ рыуюЁшЄьюь ёцрЄш ), яюЄюь яЁшяшё√трхЄё эхсюы№°ющ яю ЁрчьхЁє ъюф, ъюЄюЁ√щ яюыєўрхЄ єяЁртыхэшх яЁш чряєёъх яЁюуЁрьь√, Ёрёяръют√трхЄ т ярь Єш шёїюфэ√щ ъюф, яюёых ўхую яхЁхфр╕Є хьє єяЁртыхэшх. ┼ёыш яЁюуЁрььр єяръютрэр, Єю х╕ "эрёЄю ∙шщ" ъюф эх тшфхэ ш фы юЄырфъш эєцэю яЁхфтрЁшЄхы№эю яЁющЄш ъюф Ёрёяръют∙шър. koldbg юяЁхфхы хЄ сюы№°шэёЄтю ёє∙хёЄтє■∙шї єяръют∙шъют (mxp, mxp_lzo, mxp_nrv, mtappack) ш т ¤Єюь ёыєўрх яЁхфырурхЄ ртЄюьрЄшўхёъш яЁющЄш фю "эрёЄю ∙хую" ъюфр. ╨хъюьхэфєхЄё ёюуырёшЄ№ё (эрцрЄ№ 'y' шыш <Enter>), эю ьюцэю ш юЄърчрЄ№ё . ╧Ёш юЄърчх ш т ёыєўрх, ъюуфр яЁюуЁрььр єяръютрэр ўхь-Єю эхшчтхёЄэ√ь, ьюцэю шёяюы№чютрЄ№ ъюьрэфє "unpack" (схч рЁуєьхэЄют). ┬√ч√трщЄх х╕ Єюы№ъю т ёыєўрх, ъюуфр т√ єтхЁхэ√, ўЄю яЁюуЁрььр єяръютрэр ш ўЄю єяЁртыхэшх х∙╕ эх фю°ыю фю юёэютэюую ъюфр! [═рўшэр ё тхЁёшш Kolibri 0.6.5.0, тхё№ ¤ЄюЄ рсчрЎ єцх эхръЄєрыхэ, яюёъюы№ъє яЁшыюцхэш ьюцэю єяръют√трЄ№ ъръ ш ы■с√х фтюшўэ√х Їрщы√ kpack'юь ш яЁш ¤Єюь ъюф Ёрёяръют∙шър эрїюфшЄё т фЁх ш Ёрёяръютър яЁючЁрўэр фы юЄырфъш.] ╟руЁєцхээє■ яЁюуЁрььє ьюцэю яЁшсшЄ№ ъюьрэфющ "terminate" (схч рЁуєьхэЄют). ╩юьрэфр "detach" (схч рЁуєьхэЄют) юЄъы■ўрхЄё юЄ яЁюуЁрьь√, яюёых ўхую яЁюуЁрььр яЁюфюыцрхЄ т√яюыэ Є№ё эюЁьры№эю, ъръ хёыш с√ юЄырфўшър эх с√ыю. ╧юёых юсхшї ¤Єшї ъюьрэф яЁюуЁрььр яхЁхёЄр╕Є с√Є№ юЄырцштрхьющ. ╠юцэю чрэютю чруЁєчшЄ№ яЁюуЁрььє фы юЄырфъш ъюьрэфющ "reload" (схч рЁуєьхэЄют). ┼ёыш єцх хёЄ№ чруЁєцхээр яЁюуЁрььр, Єю юэр яЁшсштрхЄё ш чряєёърхЄё (ё ёрьюую эрўрыр) эют√щ ¤ъчхьяы Ё (ё Єющ цх ъюьрэфэющ ёЄЁюъющ), т ¤Єюь ёыєўрх ъюьрэфр рэрыюушўэр ъюьрэфрь: terminate load <last program name> <last program arguments> ┬ яЁюЄштэюь ёыєўрх чрэютю чруЁєцрхЄё яЁюуЁрььр, ъюЄюЁє■ юЄырцштрыш яюёыхфэхщ (т Єхъє∙хь ёхрэёх ЁрсюЄ√ ё koldbg) (ё Єющ цх ъюьрэфэющ ёЄЁюъющ), Є.х. яюўЄш Єю цх ёрьюх, ўЄю ш load <last program name> <last program arguments>, эю ъюьрэфр reload т юсюшї ёыєўр ї ъюЁюўх ш єфюсэхх; ъЁюьх Єюую, load ёўшЄрхЄ, ўЄю чруЁєцрхЄё эютр яЁюуЁрььр, ш яхЁхтюфшЄ юъэю фрээ√ї (ёь. эшцх) эр эєыхтющ рфЁхё, р reload ёюїЁрэ хЄ Єхъє∙шщ рфЁхё. ┬ёхуфр фюёЄєяэр ъюьрэфр "help", ъюЄюЁє■ ьюцэю ёюъЁр∙рЄ№ фю "h". ┬ёх ъюьрэф√ ЁрчсшЄ√ эр уЁєяя√. help схч рЁуєьхэЄют яюърч√трхЄ ёяшёюъ уЁєяя ъюьрэф. help ё єърчрэшхь уЁєяя√ т√тюфшЄ ёяшёюъ ъюьрэф ¤Єющ уЁєяя√ ё ъЁрЄъшьш ъюььхэЄрЁш ьш. help ё єърчрэшхь ъюьрэф√ т√тюфшЄ шэЇюЁьрЎш■ ю чрфрээющ ъюьрэфх. ═ряЁшьхЁ: help help control h LoaD ╬ъэю юЄырфўшър ёюёЄюшЄ шч ёыхфє■∙шї ¤ыхьхэЄют, яхЁхўшёы хь√ї ётхЁїє тэшч: - ёЄЁюър ёюёЄю эш . ╧Ёш эрышўшш чруЁєцхээющ яЁюуЁрьь√ яюърч√трхЄ хх шь ш ёюёЄю эшх ("Running"/"Paused"), яЁш юЄёєЄёЄтшш ёююс∙рхЄ "No program loaded". - юъэю ЁхушёЄЁют - яюърч√трхЄ чэрўхэш ЁхушёЄЁют юс∙хую эрчэрўхэш , ЁхушёЄЁр eip, ЁхушёЄЁр Їыруют ш ЁхушёЄЁют FPU/MMX. ╨хушёЄЁ Їыруют юЄюсЁрцрхЄё фтєь ёяюёюсрьш: яюыэюх hex-чэрўхэшх ш ёюёЄю эш юЄфхы№э√ї Їыруют: CF,PF,AF,ZF,SF,DF,OF: хёыш Їыру ёсЁю°хэ, Єю шчюсЁрцрхЄё ьрыхэ№ър сєътр, хёыш єёЄрэютыхэ, Єю чруыртэр . ╨хушёЄЁ√, шчьхэшт°шхё ё яЁхф√фє∙хую ьюьхэЄр, яюфётхўштр■Єё юЁрэцхт√ь. - юъэю фрээ√ї (юъэю фрьяр) - яюърч√трхЄ ёюфхЁцшьюх ярь Єш чруЁєцхээющ яЁюуЁрьь√ - юъэю ъюфр (юъэю фшчрёёхьсыхЁр) - яюърч√трхЄ ъюф яЁюуЁрьь√ т тшфх фшчрёёхьсышЁютрээ√ї шэёЄЁєъЎшщ - юъэю ёююс∙хэшщ - юъэю ъюьрэфэющ ёЄЁюъш ┬ юъэх фрьяр ьюцэю яЁюёьрЄЁштрЄ№ фрээ√х, эрўшэр ё ы■сюую рфЁхёр, фы ¤Єюую хёЄ№ ъюьрэфр: d <т√Ёрцхэшх> ╩юьрэфр d схч рЁуєьхэЄют яЁюышёЄ√трхЄ юъэю фрьяр тэшч. ╥ю цх ёрьюх юЄэюёшЄё ъ юъэє ъюфр ш ъюьрэфх u <т√Ёрцхэшх> шыш яЁюёЄю u. ═ряЁшьхЁ: d esi - яюърч√трхЄ фрээ√х, эрїюф ∙шхё яю рфЁхёє esi (эряЁшьхЁ, яюыхчэр яхЁхф т√яюыэхэшхь шэёЄЁєъЎшш rep movsb) d esp - яюърч√трхЄ ёЄхъ u eip - фшчрёёхьсышЁєхЄ шэёЄЁєъЎшш, эрўшэр ё Єхъє∙хщ ┬√Ёрцхэш т koldbg ьюуєЄ тъы■ўрЄ№ - °хёЄэрфЎрЄхЁшўэ√х ъюэёЄрэЄ√ - шьхэр тёхї ЁхушёЄЁют юс∙хую эрчэрўхэш (8 32-сшЄэ√ї, 8 16-сшЄэ√ї ш 8 8-сшЄэ√ї) ш ЁхушёЄЁр eip; чэрўхэш 16- ш 8-сшЄэ√ї ЁхушёЄЁют Ёрё°шЁ ■Єё эєы ьш фю 32 сшЄ - ўхЄ√Ёх рЁшЇьхЄшўхёъшх юяхЁрЎшш +,-,*,/ (ёю ёЄрэфрЁЄэ√ьш яЁшюЁшЄхЄрьш) ш ёъюсъш - [хёыш хёЄ№ шэЇюЁьрЎш ю ёшьтюырї] шьхэр, чруЁєцхээ√х шч dbg-Їрщыр ┬ёх т√ўшёыхэш яЁюшчтюф Єё яю ьюфєы■ 2^32. ╧ЁшьхЁ√ т√Ёрцхэшщ: eax eip+2 ecx-esi-1F al+AH*bl ax + 2* bH*(eip+a73) 3*esi*di/EAX ╩юьрэфр ? <т√Ёрцхэшх> т√ўшёы хЄ чэрўхэшх єърчрээюую т√Ёрцхэш . ╟эрўхэш ЁхушёЄЁют чруЁєцхээющ яЁюуЁрьь√ ьюцэю шчьхэ Є№ ъюьрэфющ r, шьх■∙хщ фтх рсёюы■Єэю ¤ътштрыхэЄэ√х ЇюЁь√: r <ЁхушёЄЁ> <т√Ёрцхэшх> r <ЁхушёЄЁ>=<т√Ёрцхэшх> (т юсюшї ёыєўр ї ьюцэю ЁрёёЄрты Є№ яЁюсхы√ яю тъєёє). ┬ ърўхёЄтх ЁхушёЄЁр ьюцэю єърч√трЄ№ ы■сющ шч т√°хєяюь эєЄ√ї - 24 ЁхушёЄЁр юс∙хую эрчэрўхэш ш eip. ─юяєёЄшь, ъюьрэфр load єёях°эю чруЁєчшыр яЁюуЁрььє фы юЄырфъш. ╤Ёрчє яюёых чруЁєчъш яЁюуЁрььр яЁшюёЄрэютыхэр ш эх т√яюыэ хЄё . ═рцрЄшх F7 (рэрыюу ъюьрэфэющ ёЄЁюъш - ъюьрэфр "s") фхырхЄ юфшэ °ру т чруЁєцхээющ яЁюуЁрььх, яюёых ўхую єяЁртыхэшх тючтЁр∙рхЄё юЄырфўшъє, ъюЄюЁ√щ яюърч√трхЄ эютюх ёюфхЁцшьюх ЁхушёЄЁют ш ярь Єш. ╤шёЄхьэ√щ т√чют int 40h (р Єръцх шэёЄЁєъЎшш sysenter ш syscall) яЁш ¤Єюь ёўшЄрхЄё юфэшь °руюь. ═рцрЄшх F8 (рэрыюу ъюьрэфэющ ёЄЁюъш - ъюьрэфр "p") Єръцх фхырхЄ °ру т чруЁєцхээющ яЁюуЁрььх, эю яЁш ¤Єюь т√чют√ яЁюЎхфєЁ, ёЄЁюъют√х юяхЁрЎшш ё яЁхЇшъёюь rep/repz/repnz ш Ўшъы√ loop т√яюыэ ■Єё ъръ юфшэ °ру. ╩юьрэф√ яю°руютюую т√яюыэхэш шёяюы№чє■Єё , ъръ яЁртшыю, эр юЄфхы№э√ї єўрёЄърї яЁюуЁрьь√, ъюуфр эєцэю, эряЁшьхЁ, Ёхуєы Ёэю юЄёыхцштрЄ№ чэрўхэш ЁхушёЄЁют ш/шыш ъръшї-Єю яхЁхьхээ√ї т ярь Єш. ╩юьрэфр g <т√Ёрцхэшх> тючюсэюты хЄ т√яюыэхэшх яЁюуЁрьь√ ш цф╕Є, яюър єяЁртыхэшх фющф╕Є фю eip=ёююЄтхЄёЄтє■∙хьє рфЁхёє, ш т ¤ЄюЄ ьюьхэЄ яЁшюёЄрэртыштрхЄ яЁюуЁрььє. ╩юьрэфр "g" схч рЁуєьхэЄют яЁюёЄю тючюсэюты хЄ т√яюыэхэшх яЁюуЁрьь√. ╧ЁшюёЄрэютшЄ№ т√яюыэхэшх яЁюуЁрьь√ ьюцэю ъюьрэфющ "stop" (схч рЁуєьхэЄют). ╬с√ўэю ЄЁхсєхЄё , ўЄюс√ яЁюуЁрььр эюЁьры№эю т√яюыэ ырё№, эю яЁш эрёЄєяыхэшш юяЁхфхы╕ээ√ї єёыютшщ яЁюуЁрььр яЁшюёЄрэртрырё№ ш єяЁртыхэшх яюыєўры юЄырфўшъ. ╤ююЄтхЄёЄтє■∙шх єёыютш эрч√тр■Єё Єюўърьш юёЄрэютр, breakpoint(s), т яЁюёЄюЁхўшш - сЁ ърьш. ╧ЁюёЄхщ°шщ Єшя Єюўхъ юёЄрэютр - эр ъюэъЁхЄэ√щ рфЁхё, Є.х. яЁхЁ√трЄ№ т√яюыэхэшх яЁш eip=<чрфрээюх чэрўхэшх>. ╥ръшх Єюўъш юёЄрэютр єёЄрэртыштр■Єё ъюьрэфющ: bp <т√Ёрцхэшх> ╟рьхўрэшх. ┼ёыш хёЄ№ Єюы№ъю юфэр Єрър Єюўър юёЄрэютр, єфюсэхх тьхёЄю эх╕ шёяюы№чютрЄ№ ъюьрэфє "g" ё рЁуєьхэЄюь. ─Ёєующ Єшя Єюўхъ юёЄрэютр - яю юсЁр∙хэш■ ъ чрфрээюьє єўрёЄъє ярь Єш. ╥ръшї Єюўхъ юёЄрэютр ьюцхЄ с√Є№ эх сюы№°х ўхЄ√Ё╕ї (яюёъюы№ъє шёяюы№чє■Єё ряярЁрЄэ√х тючьюцэюёЄш яЁюЎхёёюЁют x86, уфх фюяєёър■Єё Єюы№ъю 4 Єръшї Єюўъш). bpm <т√Ёрцхэшх> - сЁ ърхЄё эр ы■сющ фюёЄєя ъ срщЄє яю єърчрээюьє рфЁхёє bpm w <т√Ёрцхэшх> - сЁ ърхЄё эр чряшё№ срщЄр яю єърчрээюьє рфЁхёє bpmb/bpmw/bpmd <т√Ёрцхэшх> - сЁ ър■Єё эр фюёЄєя ъ ёююЄтхЄёЄтхээю срщЄє, ёыютє ш фтющэюьє ёыютє яю єърчрээюьє рфЁхёє. bpm ш bpmb - ёшэюэшь√. ╧Ёш шёяюы№чютрэшш bpmw/bpmd рфЁхё фюыцхэ с√Є№ т√Ёютэхэ ёююЄтхЄёЄтхээю эр уЁрэшЎє ёыютр (Є.х. с√Є№ ў╕Єэ√ь) шыш эр уЁрэшЎє фтющэюую ёыютр (Є.х. фхышЄ№ё эр 4). bpmb,bpmw,bpmd w <т√Ёрцхэшх> - рэрыюушўэю фы сЁ ър эр чряшё№. ╤яшёюъ єёЄрэютыхээ√ї Єюўхъ юёЄрэютр ьюцэю яЁюёьюЄЁхЄ№ ъюьрэфющ "bl", шэЇюЁьрЎш■ ю ъюэъЁхЄэющ Єюўъх юёЄрэютр ьюцэю яюыєўшЄ№ ё яюью∙№■ "bl <эюьхЁ>". ═хэєцэ√х Єюўъш юёЄрэютр єфры ■Єё ъюьрэфющ "bc <эюьхЁ>", тЁхьхээю эхэєцэ√х ьюцэю чряЁхЄшЄ№ ъюьрэфющ "bd <эюьхЁ>", ъюуфр юэш ёЄрэєЄ ёэютр эєцэ√, шёяюы№чєщЄх ъюьрэфє "be <эюьхЁ>". ╟рьхўрэш . 1. ╧Ёш юЄырфъх ёюсёЄтхээ√ї яЁюуЁрьь ьюцэю тёЄрты Є№ т ъюф шэёЄЁєъЎшш int3 (юсЁрЄшЄх тэшьрэшх эр юЄёєЄёЄтшх яЁюсхыр!). ╥рър шэёЄЁєъЎш т√ч√трхЄ шёъы■ўхэшх яЁш эюЁьры№эюь чряєёъх, ўЄю яЁштхф╕Є ъ чртхЁ°хэш■ яЁюЎхёёр, эю яЁш ЁрсюЄх яюф юЄырфўшъюь яЁюёЄю ръЄштшчшЁєхЄё юЄырфўшъ (ё ёююс∙хэшхь "int3 command at xxx"). ▌Єю яючтюы хЄ эх фєьрЄ№ ю Єюь, ъръшх рфЁхёр шёяюы№чютрЄ№ т ъюьрэфрї g ш/шыш bp. ╠юцэю Єръцх ухэхЁшЁютрЄ№ Їрщы ё шэЇюЁьрЎшхщ ю ёшьтюырї ш чруЁєцрЄ№ хую, Єюуфр эх Єюы№ъю эхЄ эєцф√ ёрьюёЄю Єхы№эю т√ўшёы Є№ рфЁхёр фы "g" ш "bp", эю ш "u","d","?" сєфєЄ яюэшьрЄ№ єърчрэшх шьхэш ьхЄъш/яхЁхьхээющ. 2. ┬хё№ т√тюф ш тхё№ ттюф юЁшхэЄшЁютрэ эр 16-Ёшўэє■ ёшёЄхьє ёўшёыхэш . 3. ╩юуфр яЁюуЁрььр т√яюыэ хЄё , юъэр ЁхушёЄЁют ш фрээ√ї яюърч√тр■Є шэЇюЁьрЎш■, юЄэюё ∙є■ё ъ ьюьхэЄє фю тючюсэютыхэш ; єёЄрэютър чэрўхэшщ ЁхушёЄЁют т ¤Єюь Ёхцшьх эхтючьюцэр. ┬яЁюўхь, ъюьрэфр "d" т ¤Єюь Ёхцшьх яюърч√трхЄ шэЇюЁьрЎш■, тхЁэє■ т ьюьхэЄ т√фрўш ъюьрэф√.