home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-11-26 | 90.5 KB | 2,180 lines |
-
- âïÇéÇ 15
-
- é¡πΓαÑ¡¡∩∩ «αúá¡¿ºáµ¿∩ Æπαí«-Åá߬á½∩
-
- é φΓ«⌐ ú½áóÑ ñáÑΓß∩ ñ«»«½¡¿Γѽ∞¡á∩ ΓÑσ¡¿τÑ߬á∩ ¿¡Σ«α¼á-
- µ¿∩ ñ½∩ ΓÑσ, ¬Γ« σ«τÑΓ í«½ÑÑ πú½πí½Ñ¡¡« ¿ºπτ¿Γ∞ »α«úαá¼¼¿α«-
- óá¡¿Ñ ¡á Æπαí«-Åá߬á½Ñ. îδ ¬«ß¡Ñ¼ß∩ Γᬿσ ó«»α«ß«ó, ¬á¬ ¬áα-
- Γá »á¼∩Γ¿, »α«úαá¼¼á ñ¿¡á¼¿τÑ߬«ú« αáß»αÑñѽѡ¿∩ »á¼∩Γ¿,
- Σ«α¼áΓδ ó¡πΓαÑ¡¡¿σ ñá¡¡δσ, ß«ú½áΦÑ¡¿∩ »« ó맮óá¼ ¿ Γ.ñ. ìá
- É¿ß. 15.1 »α¿óÑñÑ¡á ßσѼá αáß»αÑñѽѡ¿∩ »á¼∩Γ¿ »α«úαá¼¼δ ¡á
- Æπαí«-Åá߬á½Ñ.
- ÅαÑΣ¿¬ß¡δ⌐ ßÑú¼Ñ¡Γ »α«úαá¼¼δ (ÉSÉ) - φΓ« «í½áßΓ∞ ñ½¿¡«⌐
- 256 íá⌐Γ, ¬«Γ«αá∩ ßΓα«¿Γß∩ «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼ«⌐ äÄæ »α¿
- ºáúαπº¬Ñ Σá⌐½á .àòà. ÇñαÑß ßÑú¼Ñ¡Γá ÉSÉ ß«σαá¡∩ÑΓß∩ ó »αÑñ-
- óáα¿Γѽ∞¡« «»¿ßá¡¡«⌐ ó Æπαí«-Åá߬á½Ñ »ÑαѼѡ¡«⌐ ñ½¿¡«⌐ ó
- ß½«ó« ß ¿¼Ñ¡Ñ¼ ÉrefixSeg.
- èáªñ«¼π »α«úαá¼¼¡«¼π ¼«ñπ½ε (¬«Γ«αδ⌐ ó¬½ετáÑΓ ó ßÑí∩
- «ß¡«ó¡πε »α«úαá¼¼π ¿ ¬áªñδ⌐ ¼«ñπ½∞) ß««ΓóÑΓßΓóπÑΓ ßÑú¼Ñ¡Γ
- Ñú« ¬«ñá. Äß¡«ó¡á∩ »α«úαá¼¼á ºá¡¿¼áÑΓ »Ñαóδ⌐ ßÑú¼Ñ¡Γ ¬«ñá.
- æ½ÑñπεΘ¿Ñ ßÑú¼Ñ¡Γδ ¬«ñá ºá¡∩Γδ ¼«ñπ½∩¼¿ (ó »«α∩ñ¬Ñ, «íαáΓ¡«¼
- Γ«¼π, ó ¬«Γ«α«¼ «¡¿ π¬áºá¡δ ó »αÑñ½«ªÑ¡¿¿ ¿ß»«½∞º«óá¡¿∩).
- ū߽Ññ¡¿⌐ ßÑú¼Ñ¡Γ ¬«ñá ºá¡∩Γ í¿í½¿«ΓѬ«⌐ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓѼδ
- (¼«ñπ½∞ System). ÉẼÑα «Γñѽ∞¡«ú« ßÑú¼Ñ¡Γá ¡Ñ ¼«ªÑΓ »αÑóδ-
- ΦáΓ∞ 64è, «ñ¡á¬« «íΘ¿⌐ αẼÑα ¬«ñá «úαá¡¿τÑ¡ Γ«½∞¬« «íΩѼ«¼
- ¿¼ÑεΘÑ⌐ß∩ »á¼∩Γ¿.
- æÑú¼Ñ¡Γ ñá¡¡δσ (áñαÑßπѼδ⌐ τÑαѺ αÑú¿ßΓα DS) ß«ñÑনΓ
- óßÑ Γ¿»¿º«óá¡¡δÑ ¬«¡ßΓá¡Γδ, ºá ¬«Γ«α묨 ß½ÑñπεΓ óßÑ ú½«íá½∞-
- ¡δÑ »ÑαѼѡ¡δÑ. é »α«µÑßßÑ óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ αÑú¿ßΓα DS
- ¡¿¬«úñá ¡Ñ ¿º¼Ñ¡∩ÑΓß∩. ÉẼÑα ßÑú¼Ñ¡Γá ñá¡¡δσ ¡Ñ ¼«ªÑΓ »αÑ-
- óδΦáΓ∞ 64è.
-
- éÑασ¡∩∩ úαá¡¿µá »á¼∩Γ¿ äÄæ
- -------------------------------------------
- ! é ß»¿ß¬Ñ ßó«í«ñ¡δσ «í½áßΓÑ⌐ !
- ! «Γ¼ÑτáÑΓß∩ ¿¼ÑεΘÑÑß∩ »α«ßΓαá¡ßΓó« !
- ! ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ !
- FreePtr !-----------------------------------------!
- ! æó«í«ñ¡á∩ »á¼∩Γ∞ !
- ìÑáαÉtr !-----------------------------------------!
- ! 信ἿτÑ߬¿ αáß»αÑñѽ∩Ѽá∩ !
- ! «í½áßΓ∞ »á¼∩Γ¿ αáßΦ¿α∩ÑΓß∩ ó !
- ! ßΓ«α«¡π πóѽ¿τÑ¡¿∩ áñαÑß«ó... !
- ìÑáαÄrg !-----------------------------------------!OvrHeapEnd
- ! ÄóÑα½Ñ⌐¡δ⌐ íπΣÑα !
- !-----------------------------------------!OvrHeapOrg
- ! æÑú¼Ñ¡Γ ßΓÑ¬á æΓѬ πóѽ¿τ¿óáÑΓß∩ !
- ! ó ßΓ«α«¡π π¼Ñ¡∞ΦÑ¡¿∩ !
- ! áñαÑß«ó... !
- !-----------------------------------------!SSeg:SPtr
- ! æó«í«ñ¡á∩ «í½áßΓ∞ ßΓѬá !
- !-----------------------------------------!SSeg:0000
- ! ⽫íá½∞¡δÑ »ÑαѼѡ¡δÑ !
- !-----------------------------------------!<-------
- ! Æ¿»¿º«óá¡¡δÑ ¬«¡ßΓá¡Γδ ! !
- !-----------------------------------------!DSeg:0000
- ! Æ¿»¿º«óá¡¡δÑ ¬«¡ßΓá¡Γδ ! !
- !-----------------------------------------! !
- ! æÑú¼Ñ¡Γ ¬«ñá ¼«ñπ½∩ System ! !
- ! ! !
- !-----------------------------------------! !
- ! æÑú¼Ñ¡Γ ¬«ñá ¼«ñπ½∩ »Ñαó«ú« ! æ«ñÑα-!
- !-----------------------------------------! ª¿¼«Ñ !
- . (æÑú¼Ñ¡Γδ ¬«ñá ñαπú¿σ ¼«ñπ½Ñ⌐) . «íαáºá!
- .-----------------------------------------! Σá⌐½á !
- ! æÑú¼Ñ¡Γ ¬«ñá »«ß½Ññ¡Ñú« ¼«ñπ½∩ ! .àòà !
- !-----------------------------------------! !
- ! æÑú¼Ñ¡Γ ¬«ñá «ß¡«ó¡«⌐ »α«úαá¼¼δ ! !
- !-----------------------------------------! !
- ! ÅαÑΣ¿¬ß¡δ⌐ ßÑú¼Ñ¡Γ »α«úαá¼¼δ (ÉSÉ) ! !
- ÉrefixSeg--------------------------------------------------
-
- É¿ß. 15.1
-
- Åα¿ óσ«ñÑ ó »α«úαá¼¼π αÑú¿ßΓα ßÑú¼Ñ¡Γá ßΓѬá (SS) ¿
- π¬áºáΓѽ∞ ßΓѬá (SÉ) ºáúαπªáεΓß∩ Γá¬, τΓ« SS:SÉ π¬áºδóáÑΓ ¡á
- »Ñαóδ⌐ íá⌐Γ, ß½ÑñπεΘ¿⌐ ºá ßÑú¼Ñ¡Γ«¼ ßΓѬá. ÉÑú¿ßΓα SS ó »α«-
- µÑßßÑ óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ ¡¿¬«úñá ¡Ñ ¿º¼Ñ¡∩ÑΓß∩, á SÉ ¼«ªÑΓ
- »ÑαѼÑΘáΓ∞ß∩ 󡿺, »«¬á ¡Ñ ñ«ßΓ¿ú¡ÑΓ ¡¿ª¡Ñ⌐ úαá¡¿µδ ßÑú¼Ñ¡-
- Γá. ÉẼÑα ßÑú¼Ñ¡Γá ßΓÑ¬á ¡Ñ ¼«ªÑΓ »αÑóδΦáΓ∞ 64è. Å« π¼«½-
- τá¡¿ε Ѽπ ¡áº¡áτáÑΓß∩ αẼÑα, αáó¡δ⌐ 16è, ¡« ß »«¼«Θ∞ε ñ¿-
- αÑ¬Γ¿óδ ¬«¼»¿½∩Γ«αá $î φΓ« º¡áτÑ¡¿Ñ ¼«ª¡« ¿º¼Ñ¡¿Γ∞.
- é ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ ß«σαá¡∩εΓß∩ ñ¿¡á-
- ¼¿τÑ߬¿Ñ »ÑαѼѡ¡δÑ, Γ« ÑßΓ∞ »ÑαѼѡ¡δÑ, óδñѽѡ¡δÑ »α¿ «í-
- αáΘÑ¡¿∩σ ¬ ßΓá¡ñáαΓ¡δ¼ »α«µÑñπαá¼ New ¿ GetMem. Ä¡á ºá¡¿¼áÑΓ
- óßε ßó«í«ñ¡πε »á¼∩Γ∞ ¿½¿ τáßΓ∞ ßó«í«ñ¡«⌐ »á¼∩Γ¿, «ßΓáóΦπεß∩
- »α¿ óδ»«½¡Ñ¡¿¿ »α«úαá¼¼δ. äÑ⌐ßΓó¿Γѽ∞¡δ⌐ αẼÑα ñ¿¡á¼¿τÑ߬¿
- αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ ºáó¿ß¿Γ «Γ ¼á¬ß¿¼á½∞¡«ú« ¿ ¼¿¡¿¼á½∞-
- ¡«ú« º¡áτÑ¡¿⌐, ¬«Γ«αδÑ ¼«ª¡« πßΓá¡«ó¿Γ∞ ñ½∩ ñ¿¡á¼¿τÑ߬¿
- αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ ß »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ ¬«¼»¿½∩Γ«αá $î.
- âáαá¡Γ¿α«óá¡¡δ⌐ ¼¿¡¿¼á½∞¡δ⌐ αẼÑα ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ñ-
- ¼«⌐ «í½áßΓ¿ ¡Ñ ¼«ªÑΓ íδΓ∞ ¼Ñ¡∞ΦÑ ¼¿¡¿¼á½∞¡«ú« º¡áτÑ¡¿∩, πß-
- Γá¡«ó½Ñ¡¡«ú« ñ½∩ φΓ«⌐ «í½áßΓ¿. îá¬ß¿¼á½∞¡δ⌐ αẼÑα ñ¿¡á¼¿-
- τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ ¡¿¬«úñá ¡Ñ »αÑóδΦáÑΓ ºáñá¡¡«ú«
- ñ½∩ ¡ÑÑ ¼á¬ß¿¼á½∞¡«ú« º¡áτÑ¡¿∩.
- àß½¿ π¬áºá¡¡δ⌐ ¼¿¡¿¼á½∞¡δ⌐ «íΩѼ »á¼∩Γ¿ ¡Ññ«ßΓπ»Ñ¡,
- Γ« »α«úαá¼¼á ¡Ñ óδ»«½¡∩ÑΓß∩. Å« π¼«½τá¡¿ε ¼¿¡¿¼á½∞¡δ⌐ αẼÑα
- ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ αáóÑ¡ 0 èíá⌐Γ, á ¼á¬ß¿-
- ¼á½∞¡δ⌐ αẼÑα ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ ß«ßΓáó½∩ÑΓ
- 1 îíá⌐Γ. ¥Γ« «º¡áτáÑΓ, τΓ« »« π¼«½τá¡¿ε ñ¿¡á¼¿τÑ߬¿ αáß»αÑ-
- ñѽ∩Ѽá∩ «í½áßΓ∞ íπñÑΓ ºá¡¿¼áΓ∞ óßε «ßΓáóΦπεß∩ »á¼∩Γ∞.
- Åα«úαá¼¼á ñ¿¡á¼¿τÑ߬«ú« αáß»αÑñѽѡ¿∩ »á¼∩Γ¿ (∩ó½∩εΘá∩-
- ß∩ τáßΓ∞ε í¿í½¿«ΓѬ¿ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓѼδ), ¬á¬ ¼«ª¡« ñ«úá-
- ñáΓ∞ß∩, π»αáó½∩ÑΓ ñ¿¡á¼¿τÑ߬¿ αá»αÑñѽ∩Ѽ«⌐ «í½áßΓ∞ε. äÑ-
- Γá½∞¡« «¡á «»¿ßδóáÑΓß∩ ó ß½ÑñπεΘѼ αáºñѽÑ.
-
- Å«ñß¿ßΓѼá π»αáó½Ñ¡¿∩
- ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ∞ε »á¼∩Γ¿
-
- 信ἿτÑ߬¿ αáß»αÑñѽ∩Ѽá∩ «í½áßΓ∞ - φΓ« »«σ«ªá∩ ¡á
- ßΓѬ ßΓαπ¬Γπαá, ¬«Γ«αá∩ πóѽ¿τ¿óáÑΓß∩, ¡áτ¿¡á∩ «Γ ¼½áñΦ¿σ
- áñαÑß«ó »á¼∩Γ¿. Åα¿ φΓ«¼ ¿ß»«½∞ºπÑΓß∩ ßÑú¼Ñ¡Γ ñ¿¡á¼¿τÑ߬¿
- αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿. 쿪¡∩∩ úαá¡¿µá ñ¿¡á¼¿τÑ߬¿ αá»αÑñÑ-
- ½∩Ѽ«⌐ «í½áßΓ¿ ºá»«¼¿¡áÑΓß∩ ó »ÑαѼѡ¡«⌐ ìÑápÄrg, á óÑασ¡∩∩
- úαá¡¿µá ñ¿¡á¼¿τÑ߬¿ αá»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ ß««ΓóÑΓßΓóπÑΓ ¡¿ª-
- ¡Ñ⌐ úαá¡¿µÑ ßó«í«ñ¡«⌐ »á¼∩Γ¿ ¿ ß«σαá¡∩ÑΓß∩ ó »ÑαѼѡ¡«⌐ ìÑ-
- ápÉtr. Åα¿ ¬áªñ«¼ óδñѽѡ¿¿ ñ¿¡á¼¿τÑ߬«⌐ »ÑαѼѡ¡«⌐ ó ñ¿¡á-
- ¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ »«ñß¿ßΓѼá ñ¿¡á¼¿τÑ߬«ú«
- αáß»αÑñѽѡ¿∩ »á¼∩Γ¿ (»«ñß¿ßΓѼá π»αáó½Ñ¡¿∩ ñ¿¡á¼¿τÑ߬¿
- αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ∞ε) »ÑαѼÑΘáÑΓ »ÑαѼѡ¡πε ìÑáαÉtr óóÑασ
- ¡á αẼÑα »ÑαѼѡ¡«⌐, ¬á¬ íδ «αúá¡¿ºπ∩ »α¿ φΓ«¼ ßΓѬ ñ¿¡á¼¿-
- τÑ߬¿σ »ÑαѼѡ¡δσ, ó ¬«Γ«α«¼ «ñ¡á »ÑαѼѡ¡á∩ αẼÑΘáÑΓß∩ ¡áñ
- ñαπú«⌐.
- ÅÑαѼѡ¡á∩ ìÑápÉtr »«ß½Ñ ¬áªñ«⌐ «»Ñαᵿ¿ ¬á¬ »αá󿽫
- ¡«α¼á½¿ºπÑΓß∩, ¿ ß¼ÑΘÑ¡¿Ñ, Γᬿ¼ «íαẫ¼, »α¿¡¿¼áÑΓ º¡áτÑ¡¿∩
- ó ñ¿á»áº«¡Ñ «Γ $0000 ñ« $000F. Æá¬ ¬á¬ ¬áªñá∩ »ÑαѼѡ¡á∩
- ñ«½ª¡á µÑ½¿¬«¼ ß«ñÑαªáΓ∞ß∩ ó «ñ¡«¼ ßÑú¼Ñ¡ΓÑ, ¼á¬ß¿¼á½∞¡δ⌐
- αẼÑα «Γñѽ∞¡«⌐ »ÑαѼѡ¡«⌐, ¬«Γ«αá∩ ¼«ªÑΓ íδΓ∞ αẼÑΘÑ¡á ó
- ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿, ß«ßΓáó½∩ÑΓ 65521 íá⌐Γ
- (τΓ« ß««ΓóÑΓßΓóπÑΓ $10000 ¼¿¡πß $000F).
-
- îÑΓ«ñδ «ßó«í«ªñÑ¡¿∩ «í½áßΓÑ⌐
- ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ »á¼∩Γ¿
-
- 信ἿτÑ߬¿Ñ »ÑαѼѡ¡δÑ, ß«σαá¡∩ѼδÑ ó ñ¿¡á¼¿τÑ߬¿ αáß-
- »αÑñѽ∩Ѽ«⌐ «í½áßΓ¿, «ßó«í«ªñáεΓß∩ «ñ¡¿¼ ¿º ñóπσ ß½ÑñπεΘ¿σ
- ß»«ß«í«ó:
-
- 1. æ »«¼«Θ∞ε »α«µÑñπα Dispose ¿½¿ FrÑÑîѼ.
- 2. æ »«¼«Θ∞ε »α«µÑñπα îárk ¿ RÑlÑásÑ.
-
- Åα«ßΓÑ⌐ΦÑ⌐ ßσѼ«⌐ ¿ß»«½∞º«óá¡¿∩ »α«µÑñπα îárk ¿
- RÑlÑásÑ, ¡á»α¿¼Ñα, ∩ó½∩ÑΓß∩ óδ»«½¡Ñ¡¿Ñ ß½ÑñπεΘ¿σ «»ÑαáΓ«α«ó:
-
- New(Ptr1);
- New(Ptr2);
- Mark(P);
- New(Ptr3);
- New(Ptr4);
- New(Ptr5);
-
- æσѼá ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ »α¿ φΓ«¼ íπñÑΓ óδú-
- ½∩ñÑΓ∞, ¬á¬ »«¬áºá¡« ¡á É¿ß. 15.2.
-
- Étr1 -------------------------------- î½áñΦ¿Ñ
- ! æ«ñÑন¼«Ñ Étr1 ! áñαÑßá
- Étr2 !------------------------------! »á¼∩Γ¿
- ! æ«ñÑন¼«Ñ Étr2 !
- Étr3 !------------------------------!
- ! æ«ñÑন¼«Ñ Étr3 !
- Étr4 !------------------------------!
- ! æ«ñÑন¼«Ñ Étr4 !
- Étr5 !------------------------------!
- ! æ«ñÑন¼«Ñ Étr5 !
- ìÑápÉtr !------------------------------!
- ! ! æΓáαΦ¿Ñ
- ! ! áñαÑßá
- ! ! »á¼∩Γ¿
- --------------------------------
-
- É¿ß. 15.6 îÑΓ«ñ «ßó«í«ªñÑ¡¿∩ «í½áßΓÑ⌐ ñ¿¡á¼¿τÑ߬¿ αáß»-
- αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ »«¼«Θ∞ε »α«µÑñπα îárk ¿ RÑlÑásÑ
-
-
- Étr1 -------------------------------- î½áñΦ¿Ñ
- ! æ«ñÑন¼«Ñ Étr1 ! áñαÑßá
- Étr2 !------------------------------! »á¼∩Γ¿
- ! æ«ñÑন¼«Ñ Étr2 !
- ìÑápÉtr !------------------------------!
- ! !
- ! !
- ! ! æΓáαΦ¿Ñ
- ! ! áñαÑßá
- ! ! »á¼∩Γ¿
- --------------------------------
-
- É¿ß. 15.3 æσѼá ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ »α¿
- óδ»«½¡Ñ¡¿¿ »α«µÑñπαδ RÑleásÑ(É)
-
- Ä»ÑαáΓ«α îárk(É) «Γ¼ÑτáÑΓ ß«ßΓ«∩¡¿Ñ ñ¿¡á¼¿τÑ߬¿ αáß»αÑ-
- ñѽ∩Ѽ«⌐ «í½áßΓ¿ ¡Ñ»«ßαÑñßΓóÑ¡¡« »ÑαÑñ óδñѽѡ¿Ñ¼ »á¼∩Γ¿ ñ½∩
- »ÑαѼѡ¡«⌐ Étr3 (»πΓѼ ß«σαá¡Ñ¡¿∩ ΓѬπΘÑú« º¡áτÑ¡¿∩ »ÑαѼѡ-
- ¡«⌐ ìÑápÉtr ó É). àß½¿ óδ»«½¡∩ÑΓß∩ «»ÑαáΓ«α RÑleásÑ(É), Γ«
- ßσѼá ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ ßΓá¡«ó¿Γß∩ Γᬫ⌐,
- ¬á¬ »«¬áºá¡« ¡á É¿ß. 15.3. Åα¿ φΓ«¼, »«ß¬«½∞¬π »α«¿ºó«ñ¿Γß∩
- «íαáΘÑ¡¿Ñ ¬ »α«µÑñπαÑ îárk, «ßó«í«ªñáÑΓß∩ »á¼∩Γ∞, óδñѽѡ¡á∩
- »«ñ óßÑ π¬áºáΓѽ¿.
-
- Åα¿¼Ñτá¡¿Ñ: éδ»«½¡Ñ¡¿Ñ »α«µÑñπαδ RÑleásÑ(ìÑápÄrg) »«½-
- ¡«ßΓ∞ε «ßó«í«ªñáÑΓ ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽπε «í½áßΓ∞
- »á¼∩Γ¿, »«ß¬«½∞¬π »ÑαѼѡ¡á∩ ìÑápÄrg π¬áºδóáÑΓ ¡á ¡¿ª-
- ¡εε úαá¡¿µπ ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿.
-
- Étr1 -------------------------------- î½áñΦ¿Ñ
- ! æ«ñÑন¼«Ñ Étr1 ! áñαÑßá
- Étr2 !------------------------------! »á¼∩Γ¿
- ! æ«ñÑন¼«Ñ Étr2 !
- !------------------------------!
- !//////////////////////////////!
- Étr4 !------------------------------!
- ! æ«ñÑন¼«Ñ Étr4 !
- Étr5 !------------------------------!
- ! æ«ñÑন¼«Ñ Étr5 !
- ìÑápÉtr !------------------------------!
- ! ! æΓáαΦ¿Ñ
- ! ! áñαÑßá
- ! ! »á¼∩Γ¿
- --------------------------------
-
- É¿ß. 15.4 櫺ñá¡¿Ñ ¡Ñºá¡∩Γ«⌐ «í½áßΓ¿ ("ñδαδ") ó ñ¿¡á¼¿-
- τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ »á¼∩Γ¿
-
- Åα¿¼Ñ¡Ñ¡¿Ñ »α«µÑñπα îárk ¿ RÑlÑásÑ ñ½∩ «ßó«í«ªñÑ¡¿∩ »á-
- ¼∩Γ¿, óδñѽѡ¡«⌐ ñ½∩ ñ¿¡á¼¿τÑ߬¿σ »ÑαѼѡ¡δσ, ¡á ¬«Γ«αδÑ
- ßßδ½áεΓß∩ π¬áºáΓѽ¿, ó »«α∩ñ¬Ñ, ó Γ«τ¡«ßΓ¿ «íαáΓ¡«¼ Γ«¼π, ó
- ¬«Γ«α«¼ »α«¿ßσ«ñ¿½« óδñѽѡ¿Ñ »á¼∩Γ¿, óÑß∞¼á φΣΣÑ¬Γ¿ó¡«. Äñ-
- ¡á¬« ó í«½∞Φ¿¡ßΓóÑ »α«úαá¼¼ ¿¼ÑÑΓß∩ ΓÑ¡ñÑ¡µ¿∩ ó í«½ÑÑ ß½π-
- τá⌐¡«¼π óδñѽѡ¿ε ¿ «ßó«í«ªñÑ¡¿ε »á¼∩Γ¿, «ΓóÑñÑ¡¡«⌐ ñ½∩ ñ¿-
- ¡á¼¿τÑ߬¿σ »ÑαѼѡ¡δσ, ¡á ¬«Γ«αδÑ ßßδ½áεΓß∩ π¬áºáΓѽ¿, τΓ«
- ó½ÑτÑΓ ºá ß«í«⌐ ¡Ñ«íσ«ñ¿¼«ßΓ∞ ¿ß»«½∞º«óá¡¿∩ í«½ÑÑ Γ«¡¬¿σ
- ¼ÑΓ«ñ«ó π»αáó½Ñ¡¿∩ »á¼∩Γ∞ε, ¬«Γ«αδÑ αÑ὿º«óá¡δ ß »«¼«Θ∞ε
- »α«µÑñπα Dispose ¿ FrÑÑMem. ¥Γ¿ »α«µÑñπαδ »«ºó«½∩εΓ ó ½εí«⌐
- ¼«¼Ñ¡Γ «ßó«í«ñ¿Γ∞ »á¼∩Γ∞, óδñѽѡ¡πε ñ½∩ ½εí«⌐ ñ¿¡á¼¿τÑ߬«⌐
- »ÑαѼѡ¡«⌐, ¡á ¬«Γ«απε ßßδ½áÑΓß∩ π¬áºáΓѽ∞.
- è«úñá ß »«¼«Θ∞ε »α«µÑñπα Dispose ¿ FrÑÑîѼ «ßó«í«ªñáÑΓ-
- ß∩ »á¼∩Γ∞, «ΓóÑñÑ¡¡á∩ ñ½∩ ñ¿¡á¼¿τÑ߬«⌐ »ÑαѼѡ¡«⌐, ¡Ñ ∩ó½∩ε-
- Θá∩ß∩ "ßἫ⌐ óÑασ¡Ñ⌐" »ÑαѼѡ¡«⌐ ó ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ñ-
- ¼«⌐ «í½áßΓ¿, Γ« ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽá∩ «í½áßΓ∞ ßΓá¡«ó¿Γ-
- ß∩ Σαáú¼Ñ¡Γ¿α«óá¡¡«⌐. ÅαÑñ»«½«ª¿¼, τΓ« óδ»«½¡∩½áß∞ Γá ªÑ
- »«ß½Ññ«óáΓѽ∞¡«ßΓ¿ «»ÑαáΓ«α«ó, τΓ« ¿ ó »αÑñδñπΘѼ »α¿¼ÑαÑ.
- Æ«úñá »«ß½Ñ óδ»«½¡Ñ¡¿∩ »α«µÑñπαδ Dispose(Étr3) ó µÑ¡ΓαÑ ñ¿-
- ¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ »á¼∩Γ¿ «íαáºπÑΓß∩ ¡Ñºá¡∩Γ«Ñ
- »α«ßΓαá¡ßΓó« ("ñδαá"). ¥Γ« »«¬áºá¡« ¡á É¿ß. 15.4.
- àß½¿ ó ñá¡¡δ⌐ ¼«¼Ñ¡Γ óδ»«½¡∩ÑΓß∩ »α«µÑñπαá New(Étr3),
- Γ« φΓ« «»∩Γ∞ »α¿óÑñÑΓ ¬ óδñѽѡ¿ε Γ«⌐ ªÑ «í½áßΓ¿ »á¼∩Γ¿. æ
- ñαπú«⌐ ßΓ«α«¡δ, óδ»«½¡Ñ¡¿Ñ »α«µÑñπαδ Dispose(Étr4) πóѽ¿τ¿Γ
- αẼÑα ßó«í«ñ¡«ú« í½«¬á, Γᬠ¬á¬ Étr3 ¿ Étr4 í뫨 ß«ßÑñ¡¿¼¿
- í½«¬á¼¿ (ß¼. É¿ß. 15.5).
-
- Étr1 -------------------------------- î½áñΦ¿Ñ
- ! æ«ñÑন¼«Ñ Étr1 ! áñαÑßá
- Étr2 !------------------------------! »á¼∩Γ¿
- ! æ«ñÑন¼«Ñ Étr2 !
- !------------------------------!
- !//////////////////////////////!
- !//////////////////////////////!
- Étr5 !------------------------------!
- ! æ«ñÑন¼«Ñ Étr5 !
- ìÑápÉtr !------------------------------!
- ! ! æΓáαΦ¿Ñ
- ! ! áñαÑßá
- ! ! »á¼∩Γ¿
- --------------------------------
-
- É¿ß. 15.5 ôóѽ¿τÑ¡¿Ñ αẼÑαá ¡Ñºá¡∩Γ«ú« í½«¬á »á¼∩Γ¿
-
- é ¬«¡Ñτ¡«¼ ¿Γ«úÑ óδ»«½¡Ñ¡¿Ñ »α«µÑñπαδ Dispose(Étr5)
- »α¿óÑñÑΓ ß¡áτá½á ¬ ß«ºñá¡¿ε ¡Ñºá¡∩Γ«ú« í½«¬á í«½∞ΦÑú« αẼÑ-
- αá, á ºáΓѼ ìÑápÉtr »ÑαѼÑßΓ¿Γß∩ ó í«½ÑÑ ¼½áñΦ¿Ñ áñαÑßá »á-
- ¼∩Γ¿. ū߬«½∞¬π »«ß½Ññ¡¿¼ ñ«»πßΓ¿¼δ¼ π¬áºáΓѽѼ ΓÑ»Ñα∞ íπñÑΓ
- Étr2 (ß¼. É¿ß. 15.6), Γ« φΓ« »α¿óÑñÑΓ ¬ ñÑ⌐ßΓó¿Γѽ∞¡«¼π «ß-
- ó«í«ªñÑ¡¿ε ¡Ñºá¡∩Γ«ú« í½«¬á.
-
- Étr1 -------------------------------- î½áñΦ¿Ñ
- ! æ«ñÑন¼«Ñ Étr1 ! áñαÑßá
- Étr2 !------------------------------! »á¼∩Γ¿
- ! æ«ñÑন¼«Ñ Étr2 !
- ìÑápÉtr !------------------------------!
- ! !
- ! !
- ! !
- ! !
- ! ! æΓáαΦ¿Ñ
- ! ! áñαÑßá
- ! ! »á¼∩Γ¿
- --------------------------------
-
- É¿ß. 15.7 Äßó«í«ªñÑ¡¿Ñ ¡Ñºá¡∩Γ«ú« í½«¬á »á¼∩Γ¿
-
- èᬠ»«¬áºá¡« ¡á É¿ß. 15.2. ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽá∩
- «í½áßΓ∞ »á¼∩Γ¿ ΓÑ»Ñα∞ ¡áσ«ñ¿Γß∩ ó Γ«¼ ªÑ ßἫ¼ ß«ßΓ«∩¡¿¿, ó
- ¬á¬«¼ «¡á ¡áσ«ñ¿½áß∞ íδ »«ß½Ñ óδ»«½¡Ñ¡¿∩ »α«µÑñπαδ
- RÑlÑásÑ(É). Äñ¡á¬« ß«ºñáóáѼδÑ ¿ «ßó«í«ªñáѼδÑ »α¿ Γᬫ¼
- »α«µÑßßÑ ¡Ñºá¡∩ΓδÑ í½«¬¿ «Γ߽Ѫ¿óáεΓß∩ ñ½∩ ¿σ 󫺼«ª¡«ú«
- »«óΓ«α¡«ú« ¿ß»«½∞º«óáóá¡¿∩.
-
- 滿߫¬ ßó«í«ñ¡δσ í½«¬«ó
-
- ÇñαÑßá ¿ αẼÑαδ ßó«í«ñ¡δσ í½«¬«ó, ß«ºñá¡¡δσ »α¿ «»Ñαá-
- µ¿∩σ Dispose ¿ FrÑÑîѼ, σαá¡∩Γß∩ ó ß»¿ß¬Ñ ßó«í«ñ¡δσ í½«¬«ó,
- ¬«Γ«αδ⌐ πóѽ¿τ¿óáÑΓß∩ 󡿺, ¡áτ¿¡á∩ ß« ßΓáαΦ¿σ áñαÑß«ó »á¼∩-
- Γ¿, ó ßÑú¼Ñ¡ΓÑ ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿. èáªñδ⌐
- αẠ»ÑαÑñ óδñѽѡ¿Ñ¼ »á¼∩Γ¿ ñ½∩ ñ¿¡á¼¿τÑ߬«⌐ »ÑαѼѡ¡«⌐, »Ñ-
- αÑñ ΓѼ, ¬á¬ ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽá∩ «í½áßΓ∞ íπñÑΓ αáßΦ¿-
- αÑ¡á, »α«óÑα∩ÑΓß∩ ß»¿ß«¬ ßó«í«ñ¡δσ í½«¬«ó. àß½¿ ¿¼ÑÑΓß∩ í½«¬
- ß««ΓóÑΓßΓóπεΘÑú« αẼÑαá (Γ« ÑßΓ∞ αẼÑα ¬«Γ«α«ú« í«½∞ΦÑ ¿½¿
- αáóÑ¡ ΓαÑíπѼ«¼π αẼÑαπ), Γ« «¡ ¿ß»«½∞ºπÑΓß∩.
-
- Åα¿¼Ñτá¡¿Ñ: Åα«µÑñπαá RÑlÑásÑ óßÑúñá «τ¿ΘáÑΓ ß»¿ß«¬
- ßó«í«ñ¡δσ í½«¬«ó. Æá¬¿¼ «íαẫ¼, »α«úαá¼¼á ñ¿¡á¼¿τÑß-
- ¬«ú« αáß»αÑñѽѡ¿∩ »á¼∩Γ¿ "ºáíδóáÑΓ" « ¡Ñºá¡∩Γδσ í½«-
- ¬áσ, ¬«Γ«αδÑ ¼«úπΓ ßπΘÑßΓó«óáΓ∞ ¡¿ªÑ π¬áºáΓѽ∩ ñ¿¡á¼¿-
- τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿. àß½¿ óδ τÑαÑñπÑΓÑ «íαá-
- ΘÑ¡¿∩ ¬ »α«µÑñπαá¼ îárk ¿ RÑlÑásÑ ß «íαáΘÑ¡¿∩¼¿ ¬ »α«-
- µÑñπαá¼ Dispose ¿ FrÑÑîѼ, Γ« ¡πª¡« «íÑß»Ñτ¿Γ∞ «ΓßπΓ-
- ßΓó¿Ñ Γᬿσ ßó«í«ñ¡δσ í½«¬«ó.
-
- ô¬áºáΓѽ∞ ß»¿ß¬á ßó«í«ñ¡δσ í½«¬«ó ß«σαá¡∩ÑΓß∩ ó »ÑαÑ-
- ¼Ñ¡¡«⌐ ß ¿¼Ñ¡Ñ¼ FrÑÑÉtr. ò«Γ∩ φΓá »ÑαѼѡ¡á∩ «»¿ßδóáÑΓß∩,
- ¬á¬ »ÑαѼѡ¡á∩ Γ¿»á π¬áºáΓѽ∞, ó ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ «¡á π¬áºδ-
- óáÑΓ ¡á ¼áßß¿ó ºá»¿ßÑ⌐ ßó«í«ñ¡δσ í½«¬«ó, « τѼ ßó¿ñÑΓѽ∞-
- ßΓóπÑΓ Γ¿» »ÑαѼѡ¡«⌐ FrÑÑListÉ:
-
- type
- FreeRec = record
- OrgPtr,EndPtr: pointer;
- end;
- FreeList = array[0..8190] of FreeRec;
- FreeListP = ^FreeList;
-
- Å«½∩ ¬áªñ«⌐ ºá»¿ß¿ ÄrgÉtr ¿ àndÉtr «»αÑñѽ∩εΓ ¡áτὫ ¿
- ¬«¡Ñµ ¬áªñ«ú« ßó«í«ñ¡«ú« í½«¬á. (ànd Σá¬Γ¿τÑ߬¿ π¬áºδóáÑΓ ¡á
- »Ñαóδ⌐ ß½ÑñπεΘ¿⌐ ºá í½«¬«¼ ßó«í«ñ¡δ⌐ íá⌐Γ.) Äíá π¬áºáΓѽ∩
- ∩ó½∩εΓß∩ ¡«α¼á½¿º«óá¡¡δ¼¿. 諽¿τÑßΓó« ºá»¿ßÑ⌐ ó ¼áßß¿óÑ
- FrÑÑList óδτ¿ß½∩ÑΓß∩ »« Σ«α¼π½Ñ:
-
- FreeCount = (8192 - Ofs(FreePtr^) div 8) mod 8192
-
- ¥Γ« «º¡áτáÑΓ, τΓ« ó ß»¿ß¬Ñ ßó«í«ñ¡δσ í½«¬«ó ¼«ªÑΓ ß«-
- ñÑαªáΓ∞ß∩ ñ« 8191 ºá»¿ßÑ⌐. è«úñá ß¼ÑΘÑ¡¿Ñ ñ½∩ π¬áºáΓѽ∩
- FreePtr αáó¡« 0, Γ« ß»¿ß«¬ ßó«í«ñ¡δσ í½«¬«ó »πßΓ. ô¬áºáΓѽ∞
- FreePtr ¼«ª¡« ßαáó¡¿Γ∞ ß π¬áºáΓѽѼ ßΓѬá ó Γ«¼ ß¼δß½Ñ, τΓ«
- «¡ πóѽ¿τ¿óáÑΓß∩ ó ßΓ«α«¡π ¼½áñΦ¿σ áñαÑß«ó, ¿ óßÑ íá⌐Γδ, ¡á-
- τ¿¡á∩ «Γ FreePtr ¿ ñ« ¬«¡µá ßÑú¼Ñ¡Γá ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩-
- Ѽ«⌐ «í½áßΓ¿ ∩ó½∩εΓß∩ τáßΓ∞ε "ßó«í«ñ¡«ú« »α«ßΓαá¡ßΓóá ßΓÑ-
- ‡".
-
- Åα¿¼Ñτá¡¿Ñ: Å«»δΓ¬á «ßó«í«ñ¿Γ∞ »á¼∩Γ∞, ºá¡∩Γπε ñ½∩ ñ¿-
- ¡á¼¿τÑ߬«⌐ »ÑαѼѡ¡«⌐, ó ß¿Γπᵿ¿, ¬«úñá ß»¿ß«¬ ßó«-
- í«ñ¡δσ í½«¬«ó »ÑαÑ»«½¡Ñ¡, ó« óαѼ∩ óδ»«½¡Ñ¡¿∩ »α«úαá¼-
- ¼δ »α¿óÑñÑΓ ó «Φ¿í¬Ñ. Äñ¡á¬« »ÑαÑ»«½¡Ñ¡¿Ñ ß»¿ß¬á ßó«-
- í«ñ¡δσ í½«¬«ó - φΓ« ¬αá⌐¡Ñ ¼á½«óÑα«∩Γ¡á∩ ß¿Γπᵿ∩. ä½∩
- φΓ«ú« »«ΓαÑíπÑΓß∩ «ßó«í«ñ¿Γ∞ íѺ »«óΓ«α¡«ú« ¿ß»«½∞º«-
- óá¡¿∩ 8191 »«½¡«ßΓ∞ε ¡Ñ߼Ѫ¡δσ í½«¬«ó.
-
- ô¬áºáΓѽ∞ FreePrt ß½πª¿Γ Γá¬ªÑ ñ½∩ «Γ¼ÑΓ¬¿ óÑασ¡Ñ⌐ úαá-
- ¡¿µδ ßó«í«ñ¡«⌐ »á¼∩Γ¿ ó ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿
- (¡á ¡¿ª¡εε ÑÑ úαá¡¿µπ π¬áºδóáÑΓ ìÑápÉtr). çá¼ÑΓ¿¼, «ñ¡á¬«,
- τΓ« ¬«úñá ß¼ÑΘÑ¡¿Ñ ñ½∩ FreePtr αáó¡« 0, Γ« ñ½∩ »«½πτÑ¡¿∩ ¿ß-
- Γ¿¡¡«ú« π¬áºáΓѽ∩ ¡á óÑασ¡εε úαá¡¿µπ ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩-
- Ѽ«⌐ «í½áßΓ¿ ¡πª¡« ¬ áñαÑßπ ßÑú¼Ñ¡Γá ñ«íáó¿Γ∞ $1000. (öá¬Γ¿-
- τÑ߬¿, áñαÑß ßÑú¼Ñ¡Γá ñ½∩ FrÑÑÉtr óßÑúñá ß«ñÑαª¿Γ áñαÑß ßÑú-
- ¼Ñ¡Γá ñ½∩ óÑασ¡Ñ⌐ úαá¡¿µδ »á¼∩Γ¿, ¼¿¡πß $1000.)
- Åα¿ «ßó«í«ªñÑ¡¿¿ α∩ñá «Γ¼ÑτÑ¡¡δσ π¬áºáΓѽ∩¼¿ ¡Ñ߼Ѫ¡δσ
- «í½áßΓÑ⌐ ß»¿ß«¬ ßó«í«ñ¡δσ í½«¬«ó πóѽ¿τ¿óáÑΓß∩ (αáßΦ¿α∩ÑΓß∩
- 󡿺), τΓ«íδ «íαẫóáΓ∞ »α«ßΓαá¡ßΓó« ñ½∩ ºá»¿ß¿ ¬áªñ«ú« í½«-
- ¬á. Å«¬á ¼Ñªñπ π¬áºáΓѽ∩¼¿ ìÑápÉtr ¿ FrÑÑÉtr ¿¼ÑÑΓß∩ ñ«ßΓá-
- Γ«τ¡«Ñ »α«ßΓαá¡ßΓó«, »α«í½Ñ¼ ¡Ñ 󫺡¿¬áÑΓ. Äñ¡á¬«, ¬«úñá ñ¿-
- ¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽá∩ «í½áßΓ∞ »«τΓ¿ ºá»«½¡Ñ¡á, Γ« ¼«ªÑΓ
- «í¡áαπª¿Γß∩ ¡ÑσóáΓ¬á »α«ßΓαá¡ßΓóá ñ½∩ í«½∞Φ«ú« ß»¿ß¬á ßó«-
- í«ñ¡δσ í½«¬«ó. Åα¿ φΓ«¼ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ »α«¿ß-
- σ«ñ¿Γ «Φ¿í¬á.
- ÅαÑñßΓáó¿¼, ó τáßΓ¡«ßΓ¿, τΓ« ß»¿ß«¬ ßó«í«ñ¡δσ í½«¬«ó
- »πßΓ, á ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽá∩ «í½áßΓ∞ »«τΓ¿ ºá»«½¡Ñ¡á.
- é Γᬫ⌐ ß¿Γπᵿ¿ «íó«í«ªñÑ¡¿Ñ α∩ñá «Γ¼ÑτÑ¡¡δσ π¬áºáΓѽ∩¼¿
- í½«¬«ó, «Γ½¿τ¡δσ «Γ Γ«ú«, ¡á ¬«Γ«αδ⌐ ßßδ½áÑΓß∩ ßá¼δ⌐ óÑασ¡¿⌐
- π¬áºáΓѽ∞, »α¿óÑñÑΓ ¬ αáßΦ¿αÑ¡¿ε í½«¬«ó ñ½∩ ß»¿ß¬á ßó«í«ñ¡δσ
- í½«¬«ó.
- ùΓ«íδ »αÑñ«ΓóαáΓ¿Γ∞ ¿½¿ »αÑñó¿ñÑΓ∞ »«ñ«í¡δÑ »α«í½Ñ¼δ, ó
- »α«úαá¼¼Ñ ñ¿¡á¼¿τÑ߬«ú« αáß»αÑñѽѡ¿∩ »á¼∩Γ¿ »αÑñπß¼«ΓαÑ¡á
- »ÑαѼѡ¡á∩ ñ½¿¡«⌐ ó ß½«ó« ß ¿¼Ñ¡Ñ¼ FrÑÑîin, ¬«Γ«απε ¼«ª¡«
- ¿ß»«½∞º«óáΓ∞ ñ½∩ π»αáó½Ñ¡¿∩ ¼¿¡¿¼á½∞¡« ñ«»πßΓ¿¼δ¼ αẼÑα«¼
- «í½áßΓ¿ »á¼∩Γ¿ ¼Ñªñπ ìÑápÉtr ¿ FrÑÑÉtr. éδ ¡Ñ ¼«ªÑΓÑ ¿ß»«½∞-
- º«óáΓ∞ »α«µÑñπαδ New ¿½¿ GetîѼ ñ½∩ Γ«ú«, τΓ«íδ «ΓóÑßΓ¿ ñ½∩
- »ÑαѼѡ¡«⌐ Γá¬πε »á¼∩Γ∞, ¬«Γ«αá∩ π¼Ñ¡∞Φ¿½á íδ αẼÑα ñá¡¡«⌐
- «í½áßΓ¿ ñ« º¡áτÑ¡¿∩ ¼Ñ¡∞ΦÑú«, τѼ FrÑÑîin. Åα«µÑñπαδ
- MemAvail ¿ îáσAvail Γá¬ªÑ »ÑαÑñ ó«ºóαáΘÑ¡¿Ñ¼ ßó«¿σ αѺπ½∞Γá-
- Γ«ó óδτ¿ΓáεΓ º¡áτÑ¡¿Ñ FrÑÑîin ¿º αẼÑαá φΓ«⌐ «í½áßΓ¿.
- ç¡áτÑ¡¿Ñ, ß«σαá¡∩Ѽ«Ñ ó »ÑαѼѡ¡«⌐ FrÑÑîin »αÑñßΓáó½∩ÑΓ
- ß«í«⌐ αẼÑα «í½áßΓ¿ ó íá⌐Γáσ. ä½∩ «íÑß»ÑτÑ¡¿∩ »α«ßΓαá¡ßΓóá
- ñ½∩ ºáñá¡¡«ú« τ¿ß½á ºá»¿ßÑ⌐ ß»¿ß¬á ßó«í«ñ¡δσ í½«¬«ó π¼¡«ª∞ΓÑ
- φΓ« τ¿ß½« ¡á 8 ¿ ß«σαá¡¿ΓÑ ó »ÑαѼѡ¡«⌐ FrÑÑîin.
- çᬽετ¿Γѽ∞¡«Ñ ºá¼Ñτá¡¿Ñ »« ß»¿ß¬π ßó«í«ñ¡δσ í½«¬«ó ¬á-
- ßáÑΓß∩ »«ΓÑ¡µ¿á½∞¡«⌐ »α«í½Ñ¼δ Σαáú¼Ñ¡Γᵿ¿. æΓѻѡ∞ ñÑΓ὿-
- ºáµ¿¿ ñ½∩ »α«úαá¼¼δ ñ¿¡á¼¿τÑ߬«ú« αáß»αÑñѽѡ¿∩ »á¼∩Γ¿
- ß«ßΓáó½∩ÑΓ 1 íá⌐Γ, Γ« ÑßΓ∞, Ñß½¿ óδ «Γó«ñ¿ΓÑ ñ½∩ »ÑαѼѡ¡«⌐
- 1 íá⌐Γ, Γ« «¡á íπñÑΓ ºá¡¿¼áΓ∞ φëà 1 íá⌐Γ. é í«½∞Φ¿¡ßΓóÑ
- ß½πτáÑó, «ß«íÑ¡¡« »α¿ ¿ß»«½∞º«óá¡¿¿ »α«µÑñπα îárk ¿ RÑlÑásÑ,
- ¿½¿ ¬«úñá ¡Ñ »α«¿ºó«ñ¿Γß∩ ¡¿¬á¬¿σ «ßó«í«ªñÑ¡¿⌐, φΓ« «íÑß»Ñ-
- τ¿óáÑΓ «»Γ¿¼á½∞¡«Ñ ¿ß»«½∞º«óá¡¿Ñ ñ«ßΓπ»¡«⌐ »á¼∩Γ¿. Äñ¡á¬«,
- φΓ« Γá¬ªÑ ¼«ªÑΓ «¬áºáΓ∞ß∩ «í¼á¡τ¿óδ¼.
- Åα¿ ß½πτá⌐¡«¼ ºá¡∩Γ¿¿ ¿ «ßó«í«ªñÑ¡¿¿ í«½∞Φ«ú« τ¿ß½á
- í½«¬«ó αẽ¿τ¡«ú« αẼÑαá, ¬á¬, ¡á»α¿¼Ñα, »α¿ αáí«ΓÑ ß«
- ßΓ᫬«ó묨 ºá»¿ß∩¼¿ ó »α«úαá¼¼Ñ «íαáí«Γ¬¿ ΓѬßΓ«ó, ó αѺπ½∞-
- ΓáΓÑ íπñÑΓ »«½πτÑ¡« «τÑ¡∞ í«½∞Φ«Ñ ¬«½¿τÑßΓó« ¡Ñí«½∞Φ¿σ ¡Ñºá-
- ¡∩Γδσ í½«¬«ó, τΓ« ¼«ªÑΓ »α¿óÑßΓ¿ ¬ »ÑαÑ»«½¡Ñ¡¿ε ß»¿ß¬á ßó«-
- í«ñ¡δσ í½«¬«ó. é ¬áτÑßΓóÑ »α¿¼Ñαá »αÑñ»«½«ª¿¼, τΓ« ºá¡¿¼áÑΓ-
- ß∩ ¿ «ßó«í«ªñáÑΓß∩ í½«¬ αẼÑα«¼ 50 íá⌐Γ«ó. Å«ß½Ñ Ñú« «ßó«-
- í«ªñÑ¡¿∩ ºá»¿ß∞ « ¡Ñ¼ ó¬½ετáÑΓß∩ ó ß»¿ß«¬ ßó«í«ñ¡δσ í½«¬«ó.
- àß½¿ ó ñá½∞¡Ñ⌐ΦѼ »«ΓαÑíπÑΓß∩ í½«¬ αẼÑα«¼ 49 íá⌐Γ«ó, Γ«
- ñá¡¡δ⌐ í½«¬ íπñÑΓ »«óΓ«α¡« ¿ß»«½∞º«óá¡. Åα¿ φΓ«¼ ó ß»¿ß¬Ñ
- ßó«í«ñ¡δσ í½«¬«ó «ßΓá¡ÑΓß∩ ºá»¿ß∞ « ¡Ñºá¡∩Γ«¼ í½«¬Ñ ñ½¿¡«⌐ ó
- 1 íá⌐Γ. Å«¬á ¡Ñ íπñÑΓ «ßó«í«ªñÑ¡ «ñ¿¡ ¿º ß«ßÑñ¡¿σ í½«¬«ó
- (»α¿ φΓ«¼ í½«¬ ñ½¿¡«⌐ ó 1 íá⌐Γ ß«½∞ÑΓß∩ ó í«½∞Φ¿⌐ í½«¬) óÑ-
- α«∩Γ¡«ßΓ∞ ¿ß»«½∞º«óá¡¿∩ í½«¬á ñ½¿¡«⌐ ó 1 íá⌐Γ «τÑ¡∞ ¼á½á.
- Æá¬¿¼ «íαẫ¼, φΓá ºá»¿ß∞ íπñÑΓ ¡áσ«ñ¿Γß∩ ó ß»¿ß¬Ñ ßó«í«ñ¡δσ
- í½«¬«ó ó ΓÑτÑ¡¿¿ »α«ñ«½ª¿Γѽ∞¡«ú« óαѼѡ¿, Ñß½¿ ó««íΘÑ ¡Ñ ñ«
- ¬«¡µá αáí«Γδ »α«úαá¼¼δ.
-
- àß½¿ ó αѺπ½∞ΓáΓÑ φΓ«ú« 󫺡¿¬áÑΓ »ÑαÑ»«½¡Ñ¡¿Ñ ß»¿ß¬á
- ßó«í«ñ¡δσ í½«¬«ó, Γ« ñ½∩ «¬απú½Ñ¡¿∩ ó ßΓ«α«¡π πóѽ¿τÑ¡¿∩
- αẼÑαá, «»αÑñѽ∩Ѽ«ú« »α¿ ¬áªñ«¼ ó맮óÑ »α«µÑñπα GetîѼ ¿
- FrÑÑîѼ (π¼¡«ªÑ¡¿∩ Ñú« ¡á ¬á¬«Ñ-½¿í« τ¿ß½«) óδ ¼«ªÑΓÑ óóÑßΓ¿
- "¬«φΣΣ¿µ¿Ñ¡Γ αáºñα«í½Ñ¡¡«ßΓ¿". é «íΘѼ ß½πτáÑ, τѼ óδΦÑ φΓ«
- τ¿ß½«, ΓѼ ¼Ñ¡ÑÑ óÑα«∩Γ¡« 󫺡¿¬¡«óÑ¡¿Ñ ¡Ñ¿ß»«½∞ºπѼδσ ßó«-
- í«ñ¡δσ í½«¬«ó. ä½∩ Γ«ú«, τΓ«íδ φΓ« ßñѽáΓ∞, óá¼ »«ΓαÑíπÑΓß∩
- ß«ßΓáó¿Γ∞ ßó«¿ ß«íßΓóÑ¡¡δÑ »α«úαá¼¼δ GetîѼ ¿ FrÑÑîѼ, ¬«Γ«-
- αδÑ íπñπΓ ¿º¼Ñ¡∩Γ∞ »áαá¼ÑΓα Size ¿ ºáΓѼ «íαáΘáΓ∞ß∩ ¬ »α«µÑ-
- ñπαá¼ SystѼ.GetîѼ ¿ SystѼ.FrÑÑîѼ:
-
- procedure MyGetMem(var p: pointer; Size: word)
- begin
- Size := Size div 16*16 { ¡á¿¼Ñ¡∞Φ¿⌐ αẼÑα - 16 íá⌐Γ«ó }
- System.GetMem(p,Size);
- end;
-
- öπ¡¬µ¿∩ «íαáí«Γ¬¿ «Φ¿í¬¿
- ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ »á¼∩Γ¿
-
- ÉÑ὿º«óáΓ∞ Σπ¡¬µ¿ε «íαáí«Γ¬¿ «Φ¿í¬¿ ñ¿¡á¼¿τÑ߬¿ αáß-
- »αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ ¼«ª¡«ß »«¼«Θ∞ε »ÑαѼѡ¡«⌐ ìÑápàrror. ¥Γá
- Σπ¡¬µ¿∩ óδºδóáÑΓß∩ ¬áªñδ⌐ αáº, ¬«úñá »α«úαá¼¼á ñ¿¡á¼¿τÑ߬«ú«
- αáß»αÑñѽѡ¿∩ »á¼∩Γ¿ ¡Ñ ¼«ªÑΓ óδ»«½¡¿Γ∞ ºá»α«ß ¡á óδñѽѡ¿Ñ
- »á¼∩Γ¿. ìÑápàrror ∩ó½∩ÑΓß∩ π¬áºáΓѽѼ, ¬«Γ«αδ⌐ ßßδ½áÑΓß∩ ¡á
- Σπ¡¬µ¿ε ß« ß½ÑñπεΘ¿¼ ºáú«½«ó¬«¼:
-
- {$F+} function HeapFunc(Size: word): integer; {$F-}
-
- çá¼ÑΓ¿¼, τΓ« ñ¿αÑ¬Γ¿óá ¬«¼»¿½∩Γ«αá {$F+} π¬áºδóáÑΓ
- Σπ¡¬µ¿¿ «íαáí«Γ¬¿ «Φ¿í¬¿ ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿
- ¡Ñ ¡Ñ«íσ«ñ¿¼«ßΓ∞ ¿ß»«½∞º«óáΓ∞ ñá½∞¡¿Ñ «íαáΘÑ¡¿∩.
- öπ¡¬µ¿∩ «íαáí«Γ¿ «Φ¿í¬¿ ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í-
- ½áßΓ¿ αÑ὿ºπÑΓß∩ »πΓѼ »α¿ßóá¿óá¡¿∩ ÑÑ áñαÑßá »ÑαѼѡ¡«⌐
- ìÑápàror:
-
- HeapError := @HeapFunc;
-
- öπ¡¬µ¿∩ «íαáí«Γ¬¿ «Φ¿í¬¿ ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í-
- ½áßΓ¿ »«½πτáÑΓ π»αáó½Ñ¡¿Ñ, ¬«úñá »α¿ «íαáΘÑ¡¿¿ ¬ »α«µÑñπαá¼
- New ¿½¿ GetîѼ ºá»α«ß ¡Ñ ¼«ªÑΓ íδΓ∞ óδ»«½¡Ñ¡. Åáαá¼ÑΓα Size
- ß«ñÑαª¿Γ αẼÑα í½«¬á, ñ½∩ ¬«Γ«α«ú« ¡Ñ «¬áºá½«ß∞ «í½áßΓ¿ »á-
- ¼∩Γ¿ ß««ΓóÑΓßΓóπεΘÑú« αẼÑαá, ¿ Σπ¡¬µ¿∩ «íαáí«Γ¬¿ «Φ¿í¬¿
- ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ »α«¿ºóÑñÑΓ »«»δΓ¬π «ßó«-
- í«ªñÑ¡¿∩ í½«¬á, αẼÑα ¬«Γ«α«ú« ¡Ñ ¼Ñ¡∞ΦÑ ñá¡¡«ú« αẼÑαá.
- é ºáó¿ß¿¼«ßΓ¿ «Γ πß»Ñσá óδ»«½¡Ñ¡¿∩ φΓ«⌐ »«»δΓ¬¿ Σπ¡¬µ¿∩
- «íαáí«Γ¬¿ «Φ¿í¬¿ ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ ó«ºóαá-
- ΘáÑΓ º¡áτÑ¡¿∩ 0, 1 ¿½¿ 2. 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ 0 ßó¿ñÑΓѽ∞-
- ßΓóπÑΓ « ¡Ñπñáτ¡«⌐ »«»δΓ¬Ñ, τΓ« ¡Ñ¼Ññ½Ñ¡¡« »α¿ó«ñ¿Γ ó ó«º-
- ¡¿¬¡«óÑ¡¿ε «Φ¿í¬¿ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ. 髺óαáΘáÑ-
- ¼«Ñ º¡áτÑ¡¿Ñ 1 Γá¬ªÑ ßó¿ñÑΓѽ∞ßΓóπÑΓ « ¡Ñπñáτ¡«⌐ »«»δΓ¬Ñ, ¡«
- ó¼ÑßΓ« «Φ¿í¬¿ ó« óαѼ∩ óδ»«½Ñ¡¿∩ «¡« »α¿ó«ñ¿Γ ¬ Γ«¼π, τΓ«
- »α«µÑñπαδ GetîѼ ¿½¿ FrÑÑîѼ ó«ºóαáΘáεΓ π¬áºáΓѽ∞ nil. ìᬫ-
- ¡Ñµ, ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ 2 ßó¿ñÑΓѽ∞ßΓóπÑΓ «í πñáτ¡«⌐ »«-
- »δ⪥ ¿ óδºδóáÑΓ »«óΓ«α¡πε »«»δΓ¬π óδñѽ¿Γ∞ »á¼∩Γ∞ (¬«Γ«αá∩
- Γá¬ªÑ ¼«ªÑΓ »α¿óÑßΓ¿ ¬ ó맮óπ Σπ¡¬µ¿¿ «íαáí«Γ¿ «Φ¿í¬¿ ñ¿¡á-
- ¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿).
- æΓá¡áñáαΓ¡á∩ «íαáí«Γ¬¿ Σπ¡¬µ¿∩ «Φ¿í¬¿ ñ¿¡á¼¿τÑ߬¿ αáß-
- »αÑñѽ∩Ѽ«⌐ «í½áßΓ¿ óßÑúñá ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ 0, »α¿ó«ñ∩,
- Γᬿ¼ «íαẫ¼, ¬ «Φ¿í¬Ñ óß∩¬¿⌐ αáº, ¬«úñá ¡Ñ ¼«úπΓ íδΓ∞ óδ-
- »«½¡Ñ¡δ »α«µÑñπαδ New ¿½¿ GetîѼ. Äñ¡á¬« ñ½∩ ¼¡«ú¿σ »α¿¬½áñ-
- ¡δσ ºáñáτ í«½ÑÑ »«ñσ«ñ∩ΘÑ⌐ ∩ó½∩ÑΓß∩ »α«ßΓá∩ Σπ¡¬µ¿∩ «íαáí«Γ-
- ¬¿ «Φ¿í¬¿ ñ¿¡á¼¿τÑ߬¿ αáß»αÑñѽ∩Ѽ«⌐ «í½áßΓ¿, »α¿¼Ñα ¬«Γ«α«⌐
- »α¿óÑñÑ¡ ¡¿ªÑ:
-
- {$F+} function HeapFunc(Size: word) integer; {$F-}
- begin
- HeapFunc := 1;
- end;
-
- àß½¿ Γá¬á∩ Σπ¡¬µ¿∩ αÑ὿º«óá¡á, Γ« ó¼ÑßΓ« »α¿¡πñ¿Γѽ∞-
- ¡«ú« ºáóÑαΦÑ¡¿∩ αáí«Γδ »α«úαá¼¼δ ó ß¿Γπᵿ¿, ¬«úñá »α«µÑñπαδ
- New ¿½¿ GetîѼ ¡Ñ ¼«úπΓ óδ»«½¡¿Γ∞ ºá»α«ß, «¡á íπñÑΓ ó«ºóαá-
- ΘáΓ∞ »πßΓ«⌐ π¬áºáΓѽ∞ (π¬áºáΓѽ∞ nil).
-
- ö«α¼áΓδ ó¡πΓαÑ¡¡Ñú« »αÑñßΓáó½Ñ¡¿∩ ñá¡¡δσ
-
- ûѽδ⌐ Γ¿»
-
- ö«α¼áΓ, óδí¿αáѼδ⌐ ñ½∩ »αÑñßΓáó½Ñ¡¿∩ »ÑαѼѡ¡«⌐ µÑ½«ú«
- Γ¿»á, ºáó¿ß¿Γ «Γ ÑÑ ¼¿¡¿¼á½∞¡«⌐ ¿ ¼á¬ß¿¼á½∞¡«⌐ úαá¡¿µ:
-
- 1. àß½¿ «íÑ úαá¡¿µδ ¡áσ«ñ∩Γß∩ ó ñ¿á»áº«¡Ñ -128..127
- (¬«α«Γ¬«Ñ µÑ½«Ñ), Γ« »ÑαѼѡ¡á∩ σαá¡¿Γß∩, ¬á¬ íá⌐Γ
- ß« º¡á¬«¼.
- 2. àß½¿ «íÑ úαá¡¿µδ ¡áσ«ñ∩Γß∩ ó ñ¿á»áº«¡Ñ 0..255 (íá⌐-
- Γ«óá∩ »ÑαѼѡ¡á∩), Γ« »ÑαѼѡá∩ σαá¡¿Γß∩, ¬á¬ íá⌐Γ
- íѺ º¡á¬á.
- 3. àß½¿ «íÑ úαá¡¿µδ ¡áσ«ñ∩Γß∩ ó ñ¿á»áº«¡Ñ
- -32768..32767 (µÑ½«Ñ), Γ« »ÑαѼѡ¡á∩ σαá¡¿Γß∩, ¬á¬
- ß½«ó« ß« º¡á¬«¼.
- 4. àß½¿ «íÑ úαá¡¿µδ ¡áσ«ñ∩Γß∩ ó ñ¿á»áº«¡Ñ 0..65535
- (»ÑαѼѡ¡á∩ ñ½¿¡«⌐ ó ß½«ó«), Γ« »ÑαѼѡ¡á∩ σαá¡¿Γ-
- ß∩, ¬á¬ ß½«ó«.
- 5. é »α«Γ¿ó¡«¼ ß½πτáÑ »ÑαѼѡ¡á∩ σαá¡¿Γß∩, ¬á¬ ñó«⌐¡«Ñ
- ß½«ó« ß« º¡á¬«¼ (ñ½¿¡¡«Ñ µÑ½«Ñ).
-
- 濼ó«½∞¡δ⌐ Γ¿»
-
- 濼ó«½∞¡δ⌐ Γ¿» ¿½¿ »«ññ¿á»áº«¡ ß¿¼ó«½∞¡«ú« Γ¿»á σαá¡¿Γ-
- ß∩, ¬á¬ íá⌐Γ íѺ º¡á¬á.
-
- üπ½Ñó߬¿⌐ Γ¿»
-
- ç¡áτÑ¡¿∩ ¿ »ÑαѼѡ¡δÑ íπ½Ñó߬«ú« Γ¿»á ºá»«¼¿¡áεΓß∩, ¬á¬
- íá⌐Γ. Åα¿ φΓ«¼ »«ñαáºπ¼ÑóáεΓß∩, τΓ« «¡¿ ¼«úπΓ »α¿¡¿¼áΓ∞ º¡á-
- τÑ¡¿∩ 0 (FalsÑ) ¿½¿ 1 (ÆruÑ).
-
- ÅÑαÑτ¿ß½¿¼δ⌐ Γ¿»
-
- ç¡áτÑ¡¿∩ »ÑαÑτ¿ß½¿¼«ú« Γ¿»á σαá¡∩Γß∩, ¬á¬ íá⌐Γ íѺ º¡á-
- ¬á, Ñß½¿ ¡π¼Ñαᵿ∩ ¡Ñ »αÑóδΦáÑΓ 256. é »α«Γ¿ó¡«¼ ß½πτáÑ «¡¿
- σαá¡∩Γß∩, ¬á¬ ß½«ó« íѺ º¡á¬á.
-
- Æ¿»δ ß »½áóáεΘÑ⌐ ºá»∩Γ«⌐
-
- Æ¿»δ º¡áτÑ¡¿⌐ ß »½áóáεΘÑ⌐ ºá»∩Γ«⌐ (óÑΘÑßΓóÑ¡¡δ⌐, ß «ñ¿-
- ¡áα¡«⌐ Γ«τ¡«ßΓ∞ε, ß ñó«⌐¡«⌐ Γ«τ¡«ßΓ∞ε, ß »«óδΦÑ¡¡«⌐ Γ«τ¡«-
- ßΓ∞ε ¿½¿ ß½«ª¡δ⌐) σαá¡∩Γß∩ ó ó¿ñÑ ñó«¿τ¡«ú« »αÑñßΓáó½Ñ¡¿∩
- º¡á¬á (+ ¿½¿ -), φ¬ß»«¡Ñ¡Γδ ¿ º¡áτáΘÑ⌐ τáßΓ¿ τ¿ß½á. ÅαÑñß-
- Γáó½∩Ѽ«Ñ τ¿ß½« ¿¼ÑÑΓ º¡áτÑ¡¿Ñ:
-
- +/- º¡áτáΘá∩_τáßΓ∞ ò 2**φ¬ß»«¡Ñ¡Γá
-
- úñÑ º¡áτáΘá∩ τáßΓ∞ τ¿ß½á »αÑñßΓáó½∩ÑΓ ß«í«⌐ «Γñѽ∞¡δ⌐ í¿Γ
- ß½Ñóá «Γ ñó«¿τ¡«⌐ ñÑß∩Γ¿τ¡«⌐ ºá»∩Γ«⌐ (Γ« ÑßΓ∞ 0 <= º¡áτáΘá∩
- τáßΓ∞ <= 2).
-
- Åα¿¼Ñτá¡¿Ñ: é ß½ÑñπεΘÑ⌐ ñá½ÑÑ ßσÑ¼Ñ ß½Ñóá αáß»«½«ªÑ-
- ¡δ ßΓáαΦ¿Ñ º¡áτáΘ¿Ñ í¿Γδ, á ß»αáóá - ¼½áñΦ¿Ñ º¡áτáΘ¿Ñ
- í¿Γδ. æá¼«Ñ ½Ñó«Ñ º¡áτÑ¡¿Ñ σαá¡¿Γß∩ ó ßá¼δσ ßΓáαΦ¿σ
- áñαÑßáσ. ìá»α¿¼Ñα, ñ½∩ º¡áτÑ¡¿∩ óÑΘÑßΓóÑ¡¡«ú« Γ¿»á e
- ß«σαá¡∩ÑΓß∩ ó »Ñαó«¼ íá⌐ΓÑ, f - ó ß½ÑñπεΘ¿σ »∩Γ¿ íá⌐-
- Γáσ, á s - ó ßΓáαΦѼ º¡áτáΘѼ í¿ΓÑ »«ß½Ññ¡Ñú« íá⌐Γá.
-
-
- éÑΘÑßΓóÑ¡¡δ⌐ Γ¿»
-
- ÿÑßΓ¿íá⌐Γ«ó«Ñ (48-í¿Γ«ó«Ñ) óÑΘÑßΓóÑ¡¡«Ñ τ¿ß½« »«ñαáºñÑ-
- ½∩ÑΓß∩ ¡á Γα¿ »«½∩:
-
- 1 39 8 αẼÑα
- ------------------------------------------------------
- ! s ! f ! e !
- ------------------------------------------------------
- ßΓáαΦ¿Ñ í¿Γδ ¼½áñΦ¿Ñ í¿Γδ »«α∩ñ«¬
-
- ç¡áτÑ¡¿Ñ v τ¿ß½á «»αÑñѽ∩ÑΓß∩ ß »«¼«Θ∞ε óδαáªÑ¡¿⌐:
-
- if 0 < e <= 255, then v = (-1)**s * 2**(e-129)*(l.f).
- if e = 0, then v = 0.
-
- Åα¿¼Ñτá¡¿Ñ: éÑΘÑßΓóÑ¡¡δ⌐ Γ¿» ¡Ñ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩
- ñ½∩ σαá¡Ñ¡¿∩ ¡Ñ¡«α¼á½¿º«óá¡¡δσ τ¿ßѽ, á Γá¬ªÑ íÑ߬«-
- ¡Ñτ¡« ¼á½δσ ¿ íÑ߬«¡Ñτ¡« í«½∞Φ¿σ º¡áτÑ¡¿⌐. ìÑ¡«α¼á½¿-
- º«óá¡¡«Ñ τ¿ß½« »α¿ ß«σαá¡Ñ¡¿¿ Ñú« ó ó¿ñÑ óÑΘÑßΓóÑ¡¡«ú«
- »α¿¡¿¼áÑΓ ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ, á íÑ߬«¡Ñτ¡« ¼á½δÑ ¿ íÑß-
- ¬«¡Ñτ¡« í«½∞Φ¿Ñ º¡áτÑ¡¿∩ »α¿ »«»δ⪥ ¿ß»«½∞º«óáΓ∞ ñ½∩
- ¿σ ºá»¿ß¿ Σ«α¼áΓ óÑΘÑßΓóÑ¡¡«ú« τ¿ß½á »α¿ó«ñ∩Γ ¬ «Φ¿í¬Ñ
- »ÑαÑ»«½¡Ñ¡¿∩.
-
- Æ¿» τ¿ß½á ß «ñ¿¡áα¡«⌐ Γ«τ¡«ßΓ∞ε
-
- ùÑΓδαÑσíá⌐Γ«ó«Ñ (32-í¿Γ«ó«Ñ) τ¿ß½« »«ñαáºñѽ∩ÑΓß∩ ¡á
- Γα¿ »«½∩:
-
- 1 8 23 αẼÑα
- ------------------------------------------------------
- ! s ! e ! f !
- ------------------------------------------------------
- ßΓáαΦ¿Ñ í¿Γδ ¼½áñΦ¿Ñ í¿Γδ »«α∩ñ«¬
-
- ç¡áτÑ¡¿Ñ v φΓ«ú« τ¿ß½á «»αÑñѽ∩ÑΓß∩ ß »«¼«Θ∞ε óδαáªÑ-
- ¡¿⌐:
-
- if 0 < e < 255, then v = (-1)**s * 2**(e-12) * (l.f).
- if e = 0 and f <> 0, then v = (-1)**s * 2**(126) * (o.f).
- if e = 0 and f = 0, then v = (-1)**s * O.
- if e = 255 and f = 0, then v = (-1)**s * Inf.
- if e = 255 and f <> 0, then v = NaN.
-
- Æ¿» τ¿ß½á ß ñó«⌐¡«⌐ Γ«τ¡«ßΓ∞ε
-
- é«ß∞¼¿íá⌐Γ«ó«Ñ (64-í¿Γ«ó«Ñ) τ¿ß½« »«ñαáºñѽ∩ÑΓß∩ ¡á Γα¿
- »«½∩:
-
- 1 11 52 αẼÑα
- ------------------------------------------------------
- ! s ! e ! f !
- ------------------------------------------------------
- ßΓáαΦ¿Ñ í¿Γδ ¼½áñΦ¿Ñ í¿Γδ »«α∩ñ«¬
-
- ç¡áτÑ¡¿Ñ v φΓ«ú« τ¿ß½á «»αÑñѽ∩ÑΓß∩ ß »«¼«Θ∞ε óδαáªÑ-
- ¡¿⌐:
-
- if 0 < e < 2047, then v = (-1)**s * 2**(e-1023) * (l.f).
- if e = 0 and f <> 0, then v = (-1)**s * 2**(1022) * (o.f).
- if e = 0 and f = 0, then v = (-1)**s * O.
- if e = 2047 and f = 0, then v = (-1)**s * Inf.
- if e = 2047 and f <> 0, then v = NaN.
-
- Æ¿» τ¿ß½á ß »«óδΦÑ¡¡«⌐ Γ«τ¡«ßΓ∞ε
-
- äÑß∩Γ¿íá⌐Γ«ó«Ñ (80-í¿Γ«ó«Ñ) τ¿ß½« »«ñαáºñѽ∩ÑΓß∩ ¡á τÑ-
- ΓδαÑ »«½∩:
-
- 1 15 63 αẼÑα
- ------------------------------------------------------
- ! s ! e ! f !
- ------------------------------------------------------
- ßΓáαΦ¿Ñ í¿Γδ ¼½áñΦ¿Ñ í¿Γδ »«α∩ñ«¬
-
- ç¡áτÑ¡¿Ñ v φΓ«ú« τ¿ß½á «»αÑñѽ∩ÑΓß∩ ß »«¼«Θ∞ε óδαáªÑ-
- ¡¿⌐:
-
- if 0 < e < 32767, then v = (-1)**s * 2**(e-1023) * (l.f).
- if e = 32767 and f = 0, then v = (-1)**s * Inf.
- if e = 32767 and f <> 0, then v = NaN.
-
- 潫ª¡δ⌐ Γ¿»
-
- é«ß∞¼¿íá⌐Γ«ó«Ñ (64-í¿Γ«ó«Ñ) τ¿ß½« ß½«ª¡«ú« Γ¿»á »«ñαáº-
- ñѽ∩ÑΓß∩ ¡á ñóá »«½∩:
-
- 1 63 αẼÑα
- ------------------------------------------------------
- ! s ! d !
- ------------------------------------------------------
- ßΓáαΦ¿Ñ í¿Γδ ¼½áñΦ¿Ñ í¿Γδ »«α∩ñ«¬
-
- ç¡áτÑ¡¿Ñ v φΓ«ú« τ¿ß½á «»αÑñѽ∩ÑΓß∩ ß »«¼«Θ∞ε óδαáªÑ-
- ¡¿⌐:
-
- if s = 1 and d = 0, then v = NaN.
-
- ó »α«Γ¿ó¡«¼ ß½πτáÑ v »αÑñßΓáó½∩ÑΓ ß«í«⌐ 64-í¿Γ«ó«Ñ º¡áτÑ¡¿Ñ,
- ∩ó½∩εΘÑÑß∩ ñ«»«½¡Ñ¡¿Ñ¼ ñ« ñóπσ.
-
- ç¡áτÑ¡¿∩ Γ¿»á π¬áºáΓѽ∞
-
- ç¡áτÑ¡¿Ñ Γ¿»á π¬áºáΓѽ∞ σαá¡¿Γß∩ ó ó¿ñÑ ñó«⌐¡«ú« ß½«óá,
- »α¿ φΓ«¼ ß¼ÑΘÑ¡¿Ñ σαá¡¿Γß∩ ó ¼½áñΦѼ ß½«óÑ, á áñαÑß ßÑú¼Ñ¡Γá
- - ó ßΓáαΦѼ ß½«óÑ. ç¡áτÑ¡¿Ñ π¬áºáΓѽ∩ nil σαá¡¿Γß∩ ó ó¿ñÑ
- ñó«⌐¡«ú« ß½«óá, ºá»«½¡Ñ¡¡«ú« 0.
-
- ç¡áτÑ¡¿∩ ßΓ᫬«ó«ú« Γ¿»á
-
- æΓα«¬á ºá¡¿¼áÑΓ ßΓ«½∞¬« íá⌐Γ, ¬á¬«óá ¼á¬ß¿¼á½∞¡á∩ ñ½¿¡á
- ßΓ᫬¿, »½εß «ñ¿¡ íá⌐Γ. ÅÑαóδ⌐ íá⌐Γ ß«ñÑαª¿Γ ΓѬπΘπε ñ¿¡á¼¿-
- τÑ߬πε ñ½¿¡π ßΓ᫬¿, á »«ß½ÑñπεΘ¿Ñ íá⌐Γδ ß«ñÑαªáΓ ß¿¼ó«½δ
- ßΓ᫬¿. ü¿Γ ñ½¿¡δ ¿ ß¿¼ó«½δ αáßß¼áΓα¿óáεΓß∩, ¬á¬ º¡áτÑ¡¿∩
- íѺ º¡á¬á. îá¬ß¿¼á½∞¡á∩ ñ½¿¡á ßΓ᫬¿ - 255 ß¿¼ó«½«ó, »½εß
- íá⌐Γ ñ½¿¡δ (string[255]).
-
- ç¡áτÑ¡¿∩ ¼¡«ªÑßΓóÑ¡¡«ú« Γ¿»á
-
- î¡«ªÑßΓó« - φΓ« ¼áßß¿ó í¿Γ«ó, ó ¬«Γ«α«¼ ¬áªñδ⌐ í¿Γ π¬á-
- ºδóáÑΓ, ∩ó½∩ÑΓß∩ φ½Ñ¼Ñ¡Γ »α¿¡áñ½ÑªáΘ¿¼ ¼¡«ªÑßΓóπ ¿½¿ ¡ÑΓ.
- îá¬ß¿¼á½∞¡«Ñ τ¿ß½« φ½Ñ¼Ñ¡Γ«ó ¼¡«ªÑßΓóá - 256, ΓᬠτΓ« ¼¡«-
- ªÑßΓó« ¡¿¬«úñá ¡Ñ ¼«ªÑΓ ºá¡¿¼áΓ∞ í«½ÑÑ 32 íá⌐Γ«ó. ù¿ß½« íá⌐-
- Γ«ó, ºá¡∩Γδσ «Γñѽ∞¡δ¼ ¼¡«ªÑßΓó«¼, óδτ¿ß½∩ÑΓß∩, ¬á¬:
-
- ByteSize = (Max div 8) - (Min div 8) + 1
-
- úñÑ îin ¿ îáσ - ¡¿ª¡∩∩ ¿ óÑασ¡∩∩ úαá¡¿µá íẫó«ú« Γ¿»á φΓ«ú«
- ¼¡«ªÑßΓóá. 쫼Ñα íá⌐Γá ñ½∩ ¬«¡¬αÑΓ¡«ú« φ½Ñ¼Ñ¡Γá à óδτ¿ß½∩ÑΓ-
- ß∩ »« Σ«α¼π½Ñ:
-
- ByteNumber = (E div 8) - (Min div 8)
-
- á ¡«¼Ñα í¿Γá ó¡πΓα¿ φΓ«ú« íá⌐Γá »« Σ«α¼π½Ñ:
-
- BitNumber = E mod 8
-
- ç¡áτÑ¡¿∩ Γ¿»á ¼áßß¿ó
-
- îáßß¿ó σαá¡¿Γß∩ ó ó¿ñÑ ¡Ñ»αÑαδó¡«⌐ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿
- »ÑαѼѡ¡δσ, ¬áªñá∩ ¿º ¬«Γ«αδσ ¿¼ÑÑΓ Γ¿» ¼áßß¿óá. ¥½Ñ¼Ñ¡Γδ ß
- ¡á¿¼Ñ¡∞Φ¿¼¿ ¿¡ñѬßἿ σαá¡∩Γß∩ ó ¼½áñΦ¿σ áñαÑßáσ »á¼∩Γ¿.
- î¡«ú«¼Ñα¡δ⌐ ¼áßß¿ó σαá¡¿Γß∩ Γᬿ¼ «íαẫ¼, τΓ« »αáóδ⌐
- ¿¡ñÑ¬ß ó«ºαáßΓáÑΓ íδßΓαÑÑ.
-
- ç¡áτÑ¡¿∩ Γ¿»á ºá»¿ß∞
-
- Å«½∩ ºá»¿ß¿ σαá¡∩Γß∩, ¬á¬ ¡Ñ»αÑαδó¡á∩ »«ß½Ññ«óáΓѽ∞-
- ¡«ßΓ∞ »ÑαѼѡ¡δσ. ÅÑαó«Ñ »«½Ñ σαá¡¿Γß∩ ó ¼½áñΦ¿σ áñαÑßáσ »á-
- ¼∩Γ¿. àß½¿ ó ºá»¿ß¿ ß«ñÑαªáΓß∩ αẽ¿τ¡δÑ τáßΓ¿, Γ« ¬áªñá∩
- τáßΓ∞ ¡áτ¿¡áÑΓß∩ ß «ñ¡«ú« ¿ Γ«ú« ªÑ áñαÑßá »á¼∩Γ¿.
-
- ç¡áτÑ¡¿∩ Σá⌐½«ó«ú« Γ¿»á
-
- ç¡áτÑ¡¿∩ Σá⌐½«ó«ú« Γ¿»á »αÑñßΓáó½∩εΓß∩ ó ó¿ñÑ ºá»¿ßÑ⌐.
- Æ¿»¿º«óá¡¡δÑ ¿ ¡ÑΓ¿»¿º«óá¡¡δÑ Σá⌐½δ ºá¡¿¼áεΓ 128 íá⌐Γ«ó, ¬«-
- Γ«αδÑ αáß»«½áúáεΓß∩ »« ß½ÑñπεΘÑ⌐ ßσѼÑ:
-
- type
- FileRec = record
- Handle : word; { «íαáí«Γ¬á }
- Mode : word; { αѪ¿¼ }
- RecSize : word; { αẼÑα ºá»¿ß¿ }
- Private : array[1..26] of byte;
- UserData : array[1..16] of byte;
- Name : array[0..79] of char;
- end;
-
- ÆÑ¬ßΓ«óδÑ Σá⌐½δ ºá¡¿¼áεΓ 256 íá⌐Γ«ó ß« ß½ÑñπεΘÑ⌐ ßσѼ«⌐
- αáß»«½«ªÑ¡¿∩:
-
- type
- CharBuf = array[0..127] of char;
- TextRec = record
- Handle : word;
- Mode : word;
- BufSize : word;
- Private : word;
- BufPos : word;
- BufEnd : word;
- BufPtr : ^CharBuf;
- OpenFunc : pointer;
- InOutFunc : pointer;
- FlushFunc : pointer;
- CloseFunc : pointer;
- UserData : array[1..16] of byte;
- Name : array[0..79] of char;
- Buffer : CharBuf;
- end;
-
- é »ÑαѼѡ¡«⌐ ìándlÑ ß«ñÑনΓß∩ ¡«¼Ñα ¬á¡á½á Σá⌐½á
- (¬«úñá Σá⌐½ «Γ¬αδΓ). ¥Γ« º¡áτÑ¡¿Ñ ó«ºóαáΘáÑΓß∩ äÄæ.
- Å«½Ñ î«dÑ ßτ¿ΓáÑΓß∩ αáó¡δ¼ «ñ¡«¼π ¿º ß½ÑñπεΘ¿σ º¡áτÑ-
- ¡¿⌐:
-
- const
- fmClosed = $D7B0;
- fmInput = $D7B1;
- fmOutput = $D7B2;
- fmInOut = $D7B3;
-
- ç¡áτÑ¡¿Ñ fmClosed »«¬áºδóáÑΓ, τΓ« Σá⌐½ ºá¬αδΓ. ç¡áτÑ¡¿∩
- fmInput ¿ fmOutput »«¬áºδóáεΓ, τΓ« Σá⌐½ ∩ó½∩ÑΓß∩ ΓѬßΓ«óδ¼
- Σá⌐½«¼ ¿ τΓ« ñ½∩ ¡Ñú« íδ½á óδ»«½¡Ñ¡á »α«µÑñπαá Reset
- (fmInput) ¿½¿ Rewrite (fmOutput). ç¡áτÑ¡¿Ñ fmOutput »«¬áºδ-
- óáÑΓ, τΓ« »ÑαѼѡ¡á∩ Σá⌐½«ó«ú« Γ¿»á ∩ó½∩ÑΓß∩ Γ¿»¿º«óá¡¡δ¼
- ¿½¿ ¡ÑΓ¿»¿º«óá¡¡δ¼ Σá⌐½«¼, ñ½∩ ¬«Γ«α«ú« íδ½á óδ»«½¡Ñ¡á »α«-
- µÑñπαá Reset ¿½¿ Rewrite. ïεí«Ñ ñαπú«Ñ º¡áτÑ¡¿Ñ ú«ó«α¿Γ «
- Γ«¼, τΓ« ñ½∩ Σá⌐½«ó«⌐ »ÑαѼѡ¡«⌐ »α¿ßóá¿óá¡¿Ñ ¡Ñ í佫 óδ»«½-
- ¡Ñ¡« (¿ «¡á, Γᬿ¼ «íαẫ¼, ¡Ñ ¿¡¿µ¿á½¿º¿α«óá¡á).
- Å«½Ñ UserData ó Æπαí«-Åá߬á½Ñ ¡Ññ«ßΓπ»¡« ¿ »«½∞º«óá-
- Γѽ∞߬¿Ñ »α«úαá¼¼δ ¼«úπΓ ß«σαá¡∩Γ∞ ó ¡Ñ¼ ñá¡¡δÑ.
- Å«½Ñ Ná¼Ñ ß«ñÑαª¿Γ ¿¼∩ Σá⌐½á, ¬«Γ«α«Ñ »αÑñßΓáó½∩ÑΓ ß«-
- í«⌐ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ß¿¼ó«½«ó, «¬á¡τ¿óáεΘπεß∩ ¡π½Ñóδ¼ ß¿¼-
- 󫽫¼ (#0).
- ä½∩ Γ¿»¿º«óá¡¡δσ ¿ ¡ÑΓ¿»¿º«óá¡¡δσ »«½Ñ⌐ RÑßSizÑ ß«ñÑα-
- ª¿Γ ñ½¿¡π ºá»¿ß¿ ó íá⌐Γáσ, á »«½Ñ Érivate ºáαѺÑαó¿α«óá¡«,
- ¡« ∩ó½∩ÑΓß∩ ßó«í«ñ¡δ¼.
- ä½∩ ΓѬßΓ«óδσ Σá⌐½«ó éufPtr ∩ó½∩ÑΓß∩ π¬áºáΓѽѼ ¡á íπ-
- ΣÑα αẼÑα«¼ éufSize, éufÉ«s »αÑñßΓáó½∩ÑΓ ß«í«⌐ ¿¡ñÑ¬ß ß½Ñ-
- ñπεΘÑú« ß¿¼ó«½á ó íπΣÑαÑ, ¬«Γ«αδ⌐ ñ«½ªÑ¡ íδΓ∞ ºá»¿ßá¡ ¿½¿
- »α«τ¿Γá¡, á éufànd - ßτÑΓτ¿¬ ñ«»πßΓ¿¼δσ ß¿¼ó«½«ó ó íπΣÑαÑ.
- ô¬áºáΓѽ¿ OpenFunc, InOutFunc, FlushFunc ¿ CloseFunc
- ß½πªáΓ ñ½∩ ßß佬¿ ¡á »α«úαá¼¼δ óó«ñá-óδó«ñá ¿ ¿ß»«½∞ºπεΓß∩
- ñ½∩ π»αáó½Ñ¡¿∩ Σá⌐½«¼. é «ñ¡«¼ ¿º ß½ÑñπεΘ¿σ ñá½ÑÑ αáºñѽ«ó
- »«ñ ºáú½áó¿Ñ¼ "äαá⌐óÑαδ πßΓα«⌐ßΓó ñ½∩ ΓѬßΓ«óδσ Σá⌐½«ó" »α¿-
- ó«ñ¿Γß∩ ñ«»«½¡¿Γѽ∞¡á∩ ¿¡Σ«α¼áµ¿∩ »« φΓ«¼π ó«»α«ßπ.
-
- Åα«µÑñπα¡δÑ Γ¿»δ
-
- Åα«µÑñπα¡δÑ Γ¿»δ σαá¡∩Γß∩ ó ó¿ñÑ ñó«⌐¡«ú« ß½«óá. Åα¿
- φΓ«¼ ß ¼½áñΦѼ ß½«óÑ ß«ñÑনΓß∩ ß¼ÑΘÑ¡¿Ñ »α«µÑñπαδ, á ó
- ßΓáαΦѼ - íẫóδ⌐ ßÑú¼Ñ¡Γ.
-
- æ«ú½áΦÑ¡¿∩ »« ó맮óá¼
-
- Åáαá¼ÑΓαδ »α«µÑñπαá¼ ¿ Σπ¡¬µ¿∩¼ »ÑαÑñáεΓß∩ τÑαѺ ßΓѬ.
- ÅÑαÑñ óδº«ó«¼ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿ »áαá¼ÑΓαδ »«¼ÑΘáεΓß∩ ó
- ßΓѬ ó »«α∩ñ¬Ñ ¿σ «»¿ßá¡¿∩. ÅÑαÑñ óδσ«ñ«¼ ¿º »α«µÑñπαδ ¿½¿
- Σπ¡¬µ¿¿ óßÑ »áαá¼ÑΓαδ ¿ºó½Ñ¬áεΓß∩ ¿º ßΓѬá.
- Åα¿¼Ñα¡δ⌐ ó맮ó »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿ ¼«ª¡« »αÑñßΓáó¿Γ∞
- ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- PUSH Param1
- PUSH Param2
- .
- .
- .
- PUSH ParamX
- Call ProcOrFunc
-
- Åáαá¼ÑΓαδ ¼«úπΓ »ÑαÑñáóáΓ∞ß∩ »« ßßδ½¬Ñ ¿½¿ »« º¡áτÑ¡¿ε.
- è«úñá »áαá¼ÑΓα »ÑαÑñáÑΓß∩ »« ßß佬Ñ, Γ« π¬áºáΓѽ∞, ¬«Γ«αδ⌐
- ßßδ½áÑΓß∩ ¡á αÑá½∞¡πε ∩τÑ⌐¬π »á¼∩Γ¿, »«¼ÑΘáÑΓß∩ ó ßΓѬ. è«ú-
- ñá »áαá¼ÑΓα »ÑαÑñáÑΓß∩ »« º¡áτÑ¡¿ε, ó ßΓѬ »«¼ÑΘáÑΓß∩ ßἫ
- Σá¬Γ¿τÑ߬«Ñ º¡áτÑ¡¿Ñ.
-
- Åáαá¼ÑΓαδ-»ÑαѼѡ¡δÑ
-
- Åáαá¼ÑΓαδ-»ÑαѼѡ¡δÑ (»áαá¼ÑΓαδ var) óßÑúñá »ÑαÑñáεΓß∩
- »« ßß佬Ñ, Γ« ÑßΓ∞ π¬áºáΓѽ∞ ßßδ½áÑΓß∩ ¡á ∩τÑ⌐¬π »á¼∩Γ¿ ß
- Σá¬Γ¿τÑ߬¿¼ º¡áτÑ¡¿Ñ¼.
-
- Åáαá¼ÑΓαδ-º¡áτÑ¡¿∩
-
- Åáαá¼ÑΓαδ-º¡áτÑ¡¿∩ »ÑαÑñáεΓß∩ »« º¡áτÑ¡¿ε ¿½¿ »« ßßδ½-
- ¬Ñ, ó ºáó¿ß¿¼«ßΓ¿ «Γ ¿σ Γ¿»á ¿ αẼÑαá. é «íΘѼ ß½πτáÑ, Ñß½¿
- »áαá¼ÑΓα-º¡áτÑ¡¿Ñ ºá¡¿¼áÑΓ 1, 2 ¿½¿ 4 íá⌐Γá, Γ« º¡áτÑ¡¿Ñ »«-
- ¼ÑΘáÑΓß∩ ¡Ñ»«ßαÑñßΓóÑ¡¡« ó ßΓѬ. é »α«Γ¿ó¡«¼ ß½πτáÑ ó ßΓѬ
- »«¼ÑΘáÑΓß∩ π¬áºáΓѽ∞ ¡á º¡áτÑ¡¿Ñ, á »α«µÑñπαá ¿½¿ Σπ¡¬µ¿∩
- ¬«»¿απÑΓ ºáΓѼ º¡áτÑ¡¿Ñ ó ½«¬á½∞¡πε ∩τÑ⌐¬π »á¼∩Γ¿.
-
- Åα¿¼Ñτá¡¿Ñ: é »α«µÑßß«αÑ 8086 ¡Ñ »«ññÑনóáεΓß∩ íá⌐Γ«-
- óδÑ ¿¡ßΓαπ¬µ¿¿ ÉUSì ¿ ÉÄÉ, »«φΓ«¼π íá⌐Γ«óδÑ »áαá¼ÑΓαδ
- óßÑúñá »ÑαÑñáεΓß∩ ó ßΓѬÑ, ¬á¬ ß½«óá. î½áñΦ¿⌐ íá⌐Γ
- ß½«óá ß«ñÑαª¿Γ º¡áτÑ¡¿Ñ, á ßΓáαΦ¿⌐ íá⌐Γ ß½«óá ßó«í«ñÑ¡
- (¿ ¡Ñ«»αÑñѽѡ).
-
- ç¡áτÑ¡¿Ñ ¿½¿ »áαá¼ÑΓα µÑ½«ú« Γ¿»á »ÑαÑñáÑΓß∩ ¬á¬ íá⌐Γ,
- ß½«ó« ¿½¿ ñó«⌐¡«Ñ ß½«ó«. Åα¿ φΓ«¼ ¿ß»«½∞ºπÑΓß∩ Γᬫ⌐ ªÑ Σ«α-
- ¼áΓ, ¬á¬ ñ½∩ »αÑñßΓáó½Ñ¡¿∩ »ÑαѼѡ¡«⌐ µÑ½«ú« Γ¿»á. (ä½∩
- ñó«⌐¡δσ ß½«ó ßΓáαΦÑÑ ß½«ó« »«¼ÑΘáÑΓß∩ ó ßΓѬ »ÑαÑñ ¼½áñΦ¿¼
- ß½«ó«¼, ΓᬠτΓ« ¼½áñΦÑÑ ß½«ó« αẼÑΘáÑΓß∩ ó í«½ÑÑ ¼½áñΦ¿σ
- áñαÑßáσ.)
- Åáαá¼ÑΓα ß¿¼ó«½∞¡«ú« Γ¿»á »ÑαÑñáÑΓß∩, ¬á¬ íá⌐Γ íѺ º¡á-
- ‡.
- Åáαá¼ÑΓα íπ½Ñó߬«ú« Γ¿»á »ÑαÑñáÑΓß∩, ¬á¬ íá⌐Γ ß« º¡áτÑ-
- ¡¿Ñ¼ 0 ¿½¿ 1.
- Åáαá¼ÑΓα Γ¿»á »ÑαÑτ¿ß½Ñ¡¿∩ »ÑαÑñáÑΓß∩, ¬á¬ íá⌐Γ íѺ
- º¡á¬á, Ñß½¿ ¡π¼Ñαᵿ∩ ¡Ñ »αÑóδΦáÑΓ 256. é »α«Γ¿ó¡«¼ ß½πτáÑ
- «¡ »ÑαÑñáÑΓß∩, ¬á¬ ß½«ó« íѺ º¡á¬á.
- Åáαá¼ÑΓα óÑΘÑßΓóÑ¡¡«ú« Γ¿»á (óÑΘÑßΓóÑ¡¡«Ñ º¡áτÑ¡¿Ñ) »Ñ-
- αÑñáÑΓß∩, ¬á¬ 6 íá⌐Γ«ó ó ßΓѬÑ, »αÑñßΓáó½∩∩ ß«í«⌐, Γᬿ¼ «í-
- αẫ¼, ¿ß¬½ετÑ¡¿Ñ ¿º Γ«ú« »αáó¿½á, τΓ« ó ¡Ñ»«ßαÑñßΓóÑ¡¡« ó
- ßΓÑ¬Ñ »ÑαÑñáεΓß∩ Γ«½∞¬« 1, 2 ¿½¿ 4 íá⌐Γá.
- Åáαá¼ÑΓαδ ΓÑσ Γ¿»«ó, ¬«Γ«αδÑ ¿ß»«½∞ºπεΓß∩ ó »α«µÑßß«αÑ
- 8087 (º¡áτÑ¡¿∩ ß «ñ¿¡áα¡«⌐, ñó«⌐¡«⌐ ¿½¿ »«óδΦÑ¡¡«⌐ Γ«τ¡«ßΓ∞ε
- ¿½¿ ß½«ª¡«ú« Γ¿»á), ¡Ñ »ÑαÑñáεΓß∩ τÑαѺ ßΓѬ »α«µÑßß«αá
- 8086. é¼ÑßΓ« φΓ«ú« »áαá¼ÑΓαδ ß Γ¿»á¼¿, ¬«Γ«αδÑ ¿ß»«½∞ºπεΓß∩
- ó »α«µÑßß«αÑ 8087, »«¼ÑΘáεΓß∩ ó »«α∩ñ¬Ñ ¿σ »«∩ó½Ñ¡¿∩ ó«
- ó¡πΓαÑ¡¡¿⌐ ßΓѬ ¼áΓѼáΓ¿τÑ߬«ú« ß«»α«µÑßß«αá 8087. ¥Γ« «úαá-
- ¡¿τ¿óáÑΓ ñ«»πßΓ¿¼«Ñ τ¿ß½« »áαá¼ÑΓα«ó »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿ ß
- Γ¿»á¼¿, ¬«Γ«αδÑ ¿ß»«½∞ºπεΓß∩ ó »α«µÑßß«αÑ 8087, º¡áτÑ¡¿Ñ¼ 8
- (ßΓѬ »α«µÑßß«αá 8087 ¿¼ÑÑΓ ó«ßѼ∞ πα«ó¡Ñ⌐ ú½πí¿¡δ).
- Åáαá¼ÑΓα Γ¿»á π¬áºáΓѽ∞ »ÑαÑñáÑΓß∩ ó ó¿ñÑ ñó«⌐¡«ú« ß½«-
- óá (áñαÑß ßÑú¼Ñ¡Γá »«¼ÑΘáÑΓß∩ ó ßΓѬ »ÑαÑñ ß¼ÑΘÑ¡¿Ñ¼, Γá¬
- τΓ« τáßΓ∞, »αÑñßΓáó½∩εΘá∩ ß«í«⌐ ß¼ÑΘÑ¡¿Ñ, ºá¬á¡τ¿óáÑΓß∩ ó
- ßἫ¼ ¼½áñΦѼ áñαÑßÑ).
- Åáαá¼ÑΓα ßΓ᫬«ó«ú« Γ¿»á »ÑαÑñáÑΓß∩ ó ó¿ñÑ π¬áºáΓѽ∩ ¡á
- "αá߻ᬫóá¡¡«Ñ" ¼¡«ªÑßΓó« ñ½¿¡«⌐ 32 íá⌐Γá.
- îáßß¿ó ¿½¿ ºá»¿ß∞ ¿º 1, 2 ¿½¿ 4 íá⌐Γ«ó »«¼ÑΘáÑΓß∩ ¡Ñ-
- »«ßαÑñßΓóÑ¡¡« ó ßΓѬ. äαπú¿Ñ ¼áßß¿óδ ¿ ºá»¿ß¿ »ÑαÑñáεΓß∩,
- ¬á¬ π¬áºáΓѽ¿ ¡á º¡áτÑ¡¿∩.
-
- ÉѺπ½∞ΓáΓδ Σπ¡¬µ¿⌐
-
- ÉѺπ½∞ΓáΓδ Σπ¡¬µ¿⌐ »ÑαÑτ¿ß½¿¼«ú« Γ¿»á (µÑ½δÑ, ß¿¼ó«½∞-
- ¡δÑ, íπ½Ñó߬¿Ñ, Γ¿»á »ÑαÑτ¿ß½Ñ¡¿∩) ó«ºóαáΘáεΓß∩ ó αÑú¿ßΓαáσ
- µÑ¡Γαá½∞¡«ú« »α«µÑßß«αá: íá⌐Γδ ó«ºóαáΘáεΓß∩ ó αÑú¿ßΓαÑ ÇL,
- ß½«óá - ó αÑú¿ßΓαÑ Çò, ñó«⌐¡δÑ ß½«óá - ó Dò:Çò (ßΓáαΦÑÑ ß½«-
- ó« - ó Dò, ¼½áñΦÑÑ - ó Çò).
- ÉѺπ½∞ΓáΓδ Σπ¡¬µ¿⌐ óÑΘÑßΓóÑ¡¡«ú« Γ¿»á (º¡áτÑ¡¿∩ óÑΘÑßΓ-
- óÑ¡¡«ú« Γ¿»á) ó«ºóαáΘáεΓß∩ ó αÑú¿ßΓαáσ Dò:éò:Çò (ßΓáαΦÑÑ
- ß½«ó« - ó αÑú¿ßΓαÑ Dò, ßαÑñ¡ÑÑ ß½«ó« - ó αÑú¿ßΓαÑ éò, ¼½áñ-
- ΦÑÑ ß½«ó« - ó Çò).
- ÉѺπ½∞ΓáΓδ Σπ¡¬µ¿¿, ¿¼ÑεΘ¿Ñ «ñ¿¡ ¿º Γ¿»«ó, ¿ß»«½∞ºπε-
- Θ¿σß∩ ó »α«µÑßß«αÑ 8087, (º¡áτÑ¡¿∩ ß «ñ¿¡áα¡«⌐, ñó«⌐¡«⌐ ¿½¿
- »«óδΦÑ¡¡«⌐ Γ«τ¡«ßΓ∞ε ¿½¿ ß½«ª¡«ú« Γ¿»á), ó«ºóαáΘáεΓß∩ ó αÑ-
- ú¿ßΓαÑ óÑαΦ¿¡δ ßΓѬá ß«»α«µÑßß«αá 8087 (SÆ(0)).
- ÉѺ½∞ΓáΓδ Σπ¡¬µ¿¿ Γ¿»á π¬áºáΓѽ∞ ó«ºóαáΘáεΓß∩ ó αÑú¿ßΓ-
- αÑ Dò:Çò (áñαÑß ßÑú¼Ñ¡Γá - ó Dò, á ß¼ÑΘÑ¡¿Ñ - ó Çò).
- ùΓ« ¬áßáÑΓß∩ αѺπ½∞ΓáΓá Σπ¡¬µ¿¿ ßΓ᫬«ó«ú« Γ¿»á, Γ« óδ-
- ºδóáεΘá∩ »α«úαá¼¼á »«¼ÑΘáÑΓ ó ßΓѬ »ÑαÑñ »ÑαÑñáτÑ⌐ ¬á¬¿σ-½¿-
- í« »áαá¼ÑΓα«ó óαѼѡ¡πε ∩τÑ⌐¬π »á¼∩Γ¿, á Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ
- ßΓ᫬«ó«Ñ º¡áτÑ¡¿Ñ ó φΓ«⌐ óαѼѡ¡«⌐ ∩τÑ⌐¬Ñ. öπ¡¬µ¿∩ ¡Ñ
- ñ«½ª¡á πñá½∩Γ∞ π¬áºáΓѽ∞.
-
- ü½¿ª¡¿Ñ ¿ ñá½∞¡¿Ñ Γ¿»δ ó맮ó«ó
-
- é µÑ¡Γαá½∞¡«¼ »α«µÑßß«αÑ 8086 »«ññÑনóáÑΓß∩ ñóá Γ¿»á
- ó맮ó«ó ¿ ¿¡ßΓαπ¬µ¿⌐ ó«ºóαáΓá π»αáó½Ñ¡¿∩ - í½¿ª¡¿Ñ ¿ ñá½∞-
- ¡¿Ñ. ü½¿ª¡¿Ñ ó맮óδ »ÑαÑñáεΓ π»αáó½Ñ¡¿Ñ ñαπú«⌐ ∩τÑ⌐¬Ñ ó »αÑ-
- ñѽáσ Γ«ú« ªÑ »α«úαá¼¼¡«ú« ßÑú¼Ñ¡Γá, á ñá½∞¡¿Ñ ó맮óδ »«ºó«-
- ½∩εΓ »ÑαÑ⌐Γ¿ ó ñαπú«⌐ »α«úαá¼¼¡δ⌐ ßÑú¼Ñ¡Γ.
- ê¡ßΓαπ¬µ¿∩ í½¿ª¡Ñú« «íαáΘÑ¡¿∩ æÇLL »«¼ÑΘáÑΓ ó ßΓѬ
- 16-í¿Γ«óδ⌐ áñαÑß ó«ºóαáΓá (Γ«½∞¬« ß¼ÑΘÑ¡¿Ñ), á ¿¡ßΓαπ¬µ¿∩
- ñá½∞¡Ñú« ó맮óá »«¼ÑΘáÑΓ ó ßΓѬ 32-í¿Γ«óδ⌐ áñαÑß ó«ºóαáΓá
- (áñαÑß ßÑú¼Ñ¡Γá ¿ ß¼ÑΘÑ¡¿Ñ). æ««ΓóÑΓßóπεΘá∩ ¿¡ßΓαπ¬µ¿∩ RàÆ
- ¿ºó½Ñ¬áÑΓ ¿º ßΓѬá Γ«½∞¬« ß¼ÑΘÑ¡¿Ñ ¿½¿ áñαÑß ßÑú¼Ñ¡Γá ¿ ß¼Ñ-
- ΘÑ¡¿Ñ.
- ìá «ß¡«óÑ «»¿ßá¡¿∩ »α«µÑñπαδ ó Æπαí«-Åá߬á½Ñ íπñÑΓ áó-
- Γ«¼áΓ¿τÑ߬¿ óδí¿αáΓ∞ß∩ »αáó¿½∞¡δ⌐ Γ¿» «íαáΘÑ¡¿∩. Åα«µÑñπαδ,
- «»¿ßá¡¡δÑ ó ¿¡ΓÑαΣÑ⌐ßΓ¡«⌐ ßѬµ¿¿ ¼«ñπ½∩ ß««ΓóÑΓßΓóπεΓ ñá½∞-
- ¡Ñ¼π «íαáΘÑ¡¿ε ¿ ¼«úπΓ óδºδóáΓ∞ß∩ ¿º ñαπú¿σ í½«¬«ó. Åα«µÑñπ-
- αδ, «»¿ßá¡¡δÑ ó »α«úαá¼¼Ñ ó ßѬµ¿¿ αÑ὿ºáµ¿¿ ¼«ñπ½∩, ∩ó½∩-
- εΓß∩ í½¿ª¡¿¼¿ ¿ ¼«úπΓ óδºδóáΓ∞ß∩ Γ«½∞¬« ¿º φΓ«⌐ »α«úαá¼¼δ
- ¿½¿ ñá¡¡«ú« ¼«ñπ½∩.
- ä½∩ ¡Ñ¬«Γ«αδσ ¬«¡¬αÑΓ¡δσ µÑ½Ñ⌐ ¼«ª¡« »«ΓαÑí«óáΓ∞, τΓ«íδ
- »α«µÑñπαá ¿¼Ñ½á ñá½∞¡¿⌐ Γ¿» ó맮óá. ìá»α¿¼Ñα, »α«µÑñπαá óδ-
- σ«ñá, ñαá⌐óÑαδ πßΓα«⌐ßΓó ñ½∩ ΓѬßΓ«óδσ Σá⌐½«ó ¿ ñαπú¿Ñ
- ßαÑñßΓóá, ¿ß»«½∞ºπεΘ¿Ñ π¬áºáΓѽ¿ ¡á »α«µÑñπαδ. ä¿αÑ¬Γ¿óá
- ¬«¼»¿½∩Γ«αá {$F+} π¬áºδóáÑΓ ¡á ¡Ñ«íσ«ñ¿¼«ßΓ∞ ¿ß»«½∞º«óá¡¿∩
- ñá½∞¡Ñú« Γ¿»á ó맮ó«ó. Åα«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿, ߬«¼»¿½¿α«óá¡-
- ¡δÑ ß ñá¡¡«⌐ ñ¿αÑ¬Γ¿ó«⌐ óßÑúñá íπñπΓ ¿¼ÑΓ∞ ñá½∞¡¿⌐ Γ¿» ó맮-
- óá. Åα¿ ¿ß»«½∞º«óá¡¿¿ ó Æπαí«-Åá߬á½Ñ ñ¿αÑ¬Γ¿óδ {$F-} »αá-
- ó¿½∞¡á∩ ßσѼá ó맮óá íπñÑΓ óδí¿αáΓ∞ß∩ áóΓ«¼áΓ¿τÑ߬¿. Å«
- π¼«½τá¡¿ε ¡áº¡áτáÑΓß∩ αѪ¿¼ {$F-}.
-
- 齫ªÑ¡¡δÑ »α«µÑñπαδ ¿ Σπ¡¬µ¿¿
-
- Åα«µÑñπαá ¿½¿ Σπ¡¬µ¿∩ ßτ¿ΓáÑΓß∩ 󽫪ѡ¡«⌐, ¬«úñá «¡á
- «»¿ßδóáÑΓß∩ ó¡πΓα¿ ñαπú«⌐ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿. Å« π¼«½τá-
- ¡¿ε 󽫪ѡ¡δÑ »α«µÑñπαδ ¿ Σπ¡¬µ¿¿ óßÑúñá ¿ß»«½∞ºπεΓ í½¿ª¡¿⌐
- Γ¿» ó맮óá (NEAR), »«ß¬«½∞¬π «¡¿ ñ«ßΓπ»¡δ Γ«½∞¬« ó¡πΓα¿ «»-
- αÑñѽѡ¡«⌐ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿ ó Γ«¼ ªÑ ßÑú¼Ñ¡ΓÑ ¬«ñá. Äñ-
- ¡á¬« ó «óÑα½Ñ⌐¡δσ ºáñáτáσ «íδτ¡« ñ½∩ Γ«ú«, τΓ«íδ «íÑß»Ñτ¿Γ∞
- ñ½∩ óßÑσ »α«µÑñπα ¿ Σπ¡¬µ¿⌐ ñá½∞¡¿⌐ Γ¿» ó맮óá (FAR), ¿ß-
- »«½∞ºπÑΓß∩ ñ¿αÑ¬Γ¿óá {$F+}.
- Åα¿ ó맮óÑ ó½«ªÑ¡¡«⌐ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿ ¬«¼»¿½∩Γ«α
- ¡Ñ»«ßαÑñßΓóÑ¡¡« »ÑαÑñ ¿¡ßΓαπ¬µ¿Ñ⌐ CALL úÑ¡Ñα¿ΓπÑΓ ¿¡ßΓαπ¬µ¿ε
- PUSH BP, Σá¬Γ¿τÑ߬¿ »ÑαÑñáóá∩ αÑú¿ßΓα BP óδºδóáεΘÑ⌐ »α«úαá¼-
- ¼δ ó ¬áτÑßΓóÑ ñ«»«½¡¿Γѽ∞¡«ú« »áαá¼ÑΓαá. Å«ß½Ñ Γ«ú«, ¬á¬ óδ-
- ºδóáѼá∩ »α«µÑñπαá πßΓá¡«ó¿Γ ßó«⌐ ß«íßΓóÑ¡¡δ⌐ αÑú¿ßΓα BP,
- αÑú¿ßΓα éÉ óδºδóáεΘÑ⌐ »α«µÑñπαδ ñ«ßΓπ»Ñ¡, ¬á¬ ß½«ó«, ß«σαá-
- ¡Ñ¡¡«Ñ ó [BP+4] ¿½¿ ó [BP+6] (Ñß½¿ »α«µÑñπαá ¿¼ÑÑΓ ñá½∞¡¿⌐
- Γ¿» ó맮óá). êß»«½∞ºπ∩ ßó∩ºí τÑαѺ [BP+4] ¿ [BP+6], óδºδóáÑ-
- ¼á∩ »α«µÑñπαá ¼«ªÑΓ »«½πτ¿Γ∞ ñ«ßΓπ» ¬ ½«¬á½∞¡δ¼ »ÑαѼѡ¡δ¼ ó
- úαá¡¿µáσ ßΓѬá óδºδóáεΘÑ⌐ »α«µÑñπαδ. æ½ÑñπεΘ¿⌐ »α¿¼Ñα »«¬á-
- ºδóáÑΓ, ¬á¬ ¼«ª¡« »«½πτ¿Γ∞ ñ«ßΓπ» ¬ ½«¬á½∞¡δ¼ »ÑαѼѡ¡δ¼ ¿º
- «»ÑαáΓ«αá inline ó« 󽫪ѡ¡«⌐ »α«µÑñπαÑ:
-
- {$F+}
- procedure PA;
- var IntA: integer;
- {$F+}
- procedure B;
- var IntB: integer;
- {$F-}
- procedure C;
- var IntC: integer;
- begin
- inline(
- $8B/$46/<IntC>/ { MOV AX,[BP+IntC] ;AX = IntC }
- $8B/$5E/$04/ { MOV BX,[BP+4] ;BX = ßΓѬ é }
- $36/$8b/$47/<IntB>/ { MOV AX,SS:[BX+IntB];AX = IntB }
- $8B/$5E/$04/ { MOV BX,[BP+4] ;BX = ßΓѬ B }
- $36/8B/$5F/$06/ { MOV BX,SS:[BX+6] ;BX = ßΓѬ Ç }
- $36/$8B/$47/<IntA>); { MOV AX,SS:[BX+IntA];AX =IntA }
- end;
- begin end;
- begin end;
-
- Åα¿¼Ñτá¡¿Ñ: 齫ªÑ¡¡δÑ »α«µÑñπαδ ¿ Σπ¡¬µ¿¿ ¡Ñ½∞º∩
- «»¿ßδóáΓ∞ ß »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ external.
-
- æΓá¡ñáαΓ¡δÑ «»ÑαáΓ«αδ óσ«ñá ¿ óδσ«ñá
-
- èáªñá∩ »α«µÑñπαá ¿ Σπ¡¬µ¿∩ Åá߬á½∩ ¡áτ¿¡áÑΓß∩ ¿ ºá¬á¡-
- τ¿óáÑΓß∩ ßΓá¡ñáαΓ¡δ¼ ¡áí«α«¼ «»ÑαáΓ«α«ó, ¬«Γ«αδÑ »«ºó«½∩εΓ
- á¬Γ¿ó¿º¿α«óáΓ∞ ¿ ñÑá¬Γ¿ó¿º¿α«óáΓ∞ »α«µÑñπαπ ¿½¿ Σπ¡¬µ¿ε.
- æΓá¡ñáαΓ¡δ¼ óσ«ñ«¼ ß½πª¿Γ ß½ÑñπεΘá∩ úαπ»»á «»ÑαáΓ«α«ó:
-
- PUSH BP ; ß«σαá¡¿Γ∞ αÑú¿ßΓα éÉ
- MOV BP,SP ; πßΓá¡«ó¿Γ∞ úαá¡¿µδ ßΓѬá
- SUB SP,LocalSize ; óδñѽ¿Γ∞ »á¼∩Γ∞ ñ½∩ ½«¬á½∞¡δσ »ÑαÑ-
- ; ¼Ñ¡¡δσ
-
- é φΓ«¼ »α¿¼ÑαÑ LocalSize - φΓ« αẼÑα ½«¬á½∞¡δσ »ÑαÑ-
- ¼Ñ¡¡δσ. ê¡ßΓαπ¬µ¿∩ SUé »α¿ßπΓßΓóπÑΓ Γ«½∞¬« ó Γ«¼ ß½πτáÑ,
- ¬«úñá LocalSize ¡Ñ αáó¡« ¡π½ε. àß½¿ Γ¿» «íαáΘÑ¡¿∩ ¬ »α«µÑñπ-
- ∩ó½∩ÑΓß∩ í½¿ª¡¿¼, Γ« »áαá¼ÑΓαδ ¡áτ¿¡áεΓß∩ ß éÉ+4, Ñß½¿
- ñ½δ ó맮óá »α«µÑñπαδ ¿ß»«½∞ºπÑΓß∩ ñá½∞¡¿⌐ Γ¿» «íαáΘÑ¡¿∩, Γ«
- «¡¿ ¡áτ¿¡áεΓß∩ ß éÉ+6.
-
- æΓá¡áñáαΓ¡«⌐ úαπ»»«⌐ «»ÑαáΓ«α«ó óδσ«ñá ∩ó½∩ÑΓß∩:
-
- MOV SP,BP ; «ßó«í«ñ¿Γ∞ »á¼∩Γ∞, óδñѽѡ¡πε ñ½∩
- ; ½«¬á½∞¡δσ »ÑαѼѡ¡δσ
- POP BP ; ó«ßßΓá¡«ó¿Γ∞ αÑú¿ßΓα éÉ
- RET ParamSize ; πñ὿Γ∞ »áαá¼ÑΓαδ ¿ óδ»«½¡¿Γ∞ ó«ºóαáΓ
- ; π»αáó½Ñ¡¿∩
-
- çñÑß∞ Éárá¼SizÑ - φΓ« αẼÑα »áαá¼ÑΓα«ó. ê¡ßΓαπ¬µ¿∩ RàÆ
- ∩ó½∩ÑΓß∩ ¿¡ßΓαπ¬µ¿Ñ⌐ í½¿ª¡Ñú« ¿½¿ ñá½∞¡Ñú« Γ¿»á, ó ºáó¿ß¿-
- ¼«ßΓ¿ «Γ Γ¿»á «íαáΘÑ¡¿∩ ¬ »α«µÑñπαÑ.
-
- æ«ú½áΦÑ¡¿∩ »« ß«σαá¡Ñ¡¿ε αÑú¿ßΓα«ó
-
- é »α«µÑñπαáσ ¿ Σπ¡¬µ¿∩σ ß½ÑñπÑΓ ß«σαá¡∩Γ∞ αÑú¿ßΓαδ éÉ,
- SÉ, SS ¿ DS. ç¡áτÑ¡¿∩ óßÑσ ñαπú¿σ αÑú¿ßΓα«ó ¼«ª¡« ¿º¼Ñ¡∩Γ∞.
-
- 諼»«¡«ó¬á ß »α«úαἼἿ ¡á ∩ºδ¬Ñ áßßѼí½Ñαá
-
- æ »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ ¬«¼»¿½∩Γ«αá $L ¼«ª¡« óδ»«½¡¿Γ∞ ¬«¼-
- »«¡«ó¬π »α«úαá¼¼ ¿½¿ ¼«ñπ½Ñ⌐ ¡á ∩ºδ¬Ñ Åá߬á½∞ ¿ »α«µÑñπα ¿
- Σπ¡¬µ¿⌐ ¡á ∩ºδ¬Ñ áßßѼí½Ñαá. êº ¿ßσ«ñ¡«ú« Σá⌐½á ¡á ∩ºδ¬Ñ áß-
- ßѼí½Ñαá ¼«ª¡« ß »«¼«Θ∞ε áßßѼí½Ñαá »«½πτ¿Γ∞ «íΩÑ¬Γ¡δ⌐ Σá⌐½
- (ß αáßΦ¿αÑ¡¿Ñ¼ .ÄéJ). êß»«½∞ºπ∩ αÑñá¬Γ«α ßó∩ºÑ⌐, ¡Ñ߬«½∞¬«
- «íΩÑ¬Γ¡δσ Σá⌐½«ó ¼«ª¡« ߬«¼»«¡«óáΓ∞ ß »α«úαá¼¼«⌐ ¿½¿ ¼«ñπ-
- ½Ñ¼. Åα¿ φΓ«¼ ¿ß»«½∞ºπÑΓß∩ ñ¿αÑ¬Γ¿óá ¬«¼»¿½∩Γ«αá $L.
- é »α«úαá¼¼Ñ ¿½¿ ¼«ñπ½Ñ ¡á ∩ºδ¬Ñ Åá߬á½∞ »α«µÑñπαδ ¿½¿
- Σπ¡¬µ¿¿, ¡á»¿ßá¡¡δÑ ¡á ∩ºδ¬Ñ áßßѼí½Ñαá, ñ«½ª¡δ íδΓ∞ «»¿ßá-
- ¡δ, ¬á¬ ó¡ÑΦ¡¿Ñ. ìá»α¿¼Ñα:
-
- function LoCase(Ch : char): char; external;
-
- é ß««ΓóÑΓßΓóπεΘѼ Σá⌐½Ñ ¡á ∩ºδ¬Ñ áßßѼí½Ñαá óßÑ »α«µÑ-
- ñπαδ ¿½¿ Σπ¡¬µ¿¿ ñ«½ª¡δ ¡áσ«ñ¿Γ∞ß∩ ó ßÑú¼Ñ¡ΓÑ ß ¿¼Ñ¡Ñ¼ æÄDà,
- á ¿¼Ñ¡á ó¡ÑΦ¡¿σ »α«µÑñπα ¿ Σπ¡¬µ¿⌐ ñ«½ª¡δ íδΓ∞ π¬áºá¡δ ó ñ¿-
- αÑ¬Γ¿óáσ ÉUéLIæ. (é¼ÑßΓ« æÄDà ó ¬áτÑßΓóÑ ¿¼Ñ¡¿ ßÑú¼Ñ¡Γá
- ó«ß»α¿¡¿¼áÑΓß∩ Γá¬ªÑ æseg.)
- éδ ñ«½ª¡δ «íÑß»Ñτ¿Γ∞ ß««ΓóÑΓßΓó¿Ñ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿
- ÑÑ «»αÑñѽѡ¿ε ó Åá߬á½Ñ. ¥Γ« «Γ¡«ß¿Γß∩ ó Γ¿»π ÑÑ ó맮óá
- (í½¿ª¡¿⌐ ¿½¿ ñá½∞¡¿⌐), τ¿ß½π ¿ Γ¿»π »áαá¼ÑΓα«ó ¿ Γ¿»π αÑ-
- ºπ½∞ΓáΓá.
- é ¿ßσ«ñ¡«¼ Σá⌐½Ñ ¡á ∩ºδ¬Ñ áßßѼí½Ñαá ¼«úπΓ «»¿ßδóáΓ∞ß∩
- »ÑαѼѡ¡δÑ, ß«ñÑαªáΘ¿Ñß∩ ó ßÑú¼Ñ¡ΓÑ ß ¿¼Ñ¡Ñ¼ DAÆA. é ¿ßσ«ñ-
- ¡«¼ Σá⌐½Ñ ¡á ∩ºδ¬Ñ áßßѼí½Ñαá φΓ¿ »ÑαѼѡ¡δÑ ∩ó½∩εΓß∩ ½«-
- ¬á½∞¡δ¼¿ ¿ ¡á ¡¿σ ¡Ñ½∞º∩ ßßδ½áΓ∞ß∩ ¿º ¼«ñπ½∩ ¿½¿ »α«úαá¼¼δ
- ¡á Åá߬á½Ñ. Ä¡¿, «ñ¡á¬«, ¡áσ«ñ∩Γß∩ ó Γ«¼ ªÑ ßÑú¼Ñ¡ΓÑ, τΓ« ¿
- ú½«íá½∞¡δÑ »ÑαѼѡ¡δÑ Åá߬á½∩, ¿ ¼«úπΓ íδΓ∞ ñ«ßΓπ»¡δ τÑαѺ
- αÑú¿ßΓα ßÑú¼Ñ¡Γá DS. (é¼ÑßΓ« ¿¼Ñ¡¿ ßÑú¼Ñ¡Γá DAÆA ¼«ªÑΓ ΓᬪÑ
- ó«ß»α¿¡¿¼áΓ∞ß∩ ¿¼∩ ßÑú¼Ñ¡Γá Dseg.)
- ìá óßÑ »α«µÑñπαδ, Σπ¡¬µ¿¿ ¿ »ÑαѼѡ¡δÑ, «»¿ßá¡¡δÑ ó ¼«-
- ñπ½Ñ ¿½¿ »α«úαá¼¼Ñ ¡á Åá߬á½Ñ ¿ ¡á ΓÑ ¿º ¡¿σ, ¬«Γ«αδÑ «»¿ßá-
- ¡δ ó ¿¡ΓÑαΣÑ⌐ß¡«⌐ ßѬµ¿¿ ¿ß»«½∞ºπѼδσ ¼«ñπ½Ñ⌐, ¼«ª¡« ßßδ-
- ½áΓ∞ß∩ ¿º ¿ßσ«ñ¡«ú« Σá⌐½á ¡á ∩ºδ¬Ñ áßßѼí½Ñαá ß »«¼«Θ∞ε ñ¿-
- αÑ¬Γ¿óδ àòÆRN. Åα¿ φΓ«¼ «í∩ºá¡¡«ßΓ∞ «íÑß»Ñτ¿Γ∞ ¬«ααÑ¬Γ¡δ⌐
- Γ¿» ó «»αÑñѽѡ¿¿ àòÆRN Γá¬ªÑ ó«º½áúáÑΓß∩ ¡á óáß.
- è«úñá «íΩÑ¬Γ¡δ⌐ Σá⌐½ π¬áºδóáÑΓß∩ ó ñ¿αÑ¬Γ¿óÑ $L, Æπα-
- í«-Åá߬á½∞ »αÑ«íαáºπÑΓ Σá⌐½ ¿º Σ«α¼áΓá »ÑαѼÑΘáѼδσ «íΩѬ-
- Γ¡δσ ¼«ñπ½Ñ⌐ (.ÄéJ) Σ¿α¼δ Intel ó ßó«⌐ ß«íßΓóÑ¡¡δ⌐ ó¡πΓ-
- αÑ¡¡¿⌐ Σ«α¼áΓ »ÑαѼÑΘáѼδσ ¼«ñπ½Ñ⌐. ¥Γ« »αÑ«íαẫóá¡¿Ñ ó«º-
- ¼«ª¡« ½¿Φ∞ »α¿ ß«í½εñÑ¡¿¿ ¡Ñ¬«Γ«αδσ »αáó¿½:
-
- 1. éßÑ »α«µÑñπαδ ¿ Σπ¡¬µ¿¿ ñ«½ª¡δ íδΓ∞ »«¼ÑΘÑ¡δ ó ßÑú-
- ¼Ñ¡Γ ß ¿¼Ñ¡Ñ¼ æÄDà, á óßÑ ½«¬á½∞¡δÑ »ÑαѼѡ¡δÑ
- ñ«½ª¡δ íδΓ∞ »«¼ÑΘÑ¡δ ó ßÑú¼Ñ¡Γ ß ¿¼Ñ¡Ñ¼ DAÆA. éßÑ
- ñαπú¿Ñ ßÑú¼Ñ¡Γδ ¿ú¡«α¿απεΓß∩, »«φΓ«¼π ¿¼ÑÑΓß∩ ñ¿-
- αÑ¬Γ¿óá GRÄUÉ. é «»αÑñѽѡ¿∩σ ßÑú¼Ñ¡Γá ¼«ªÑΓ ºáñá-
- óáΓ∞ß∩ óδαáó¡¿óá¡¿Ñ ¡á úαá¡¿µπ ß½«óá ¿½¿ íá⌐Γá
- (WORD ¿½¿ éYÆà). Åα¿ αÑñá¬Γ¿α«óá¡¿¿ ßó∩ºÑ⌐ «¡¿
- óßÑúñá óδαáó¡¿óáεΓß∩ ¡á úαá¡¿µπ ß½«óá. é «»αÑñѽÑ-
- ¡¿∩σ ßÑú¼Ñ¡Γ«ó ¼«úπΓ π¬áºδóáΓ∞ß∩ ñ¿αÑ¬Γ¿óδ ÉUéLIæ
- («¡¿ ¿ú¡«α¿απεΓß∩), ¡« ó ¡¿σ ¡Ñ ñ«½ª¡« ºáñáóáΓ∞ß∩
- ¿¼∩ ¬½áßßá. (é¼ÑßΓ« ¿¼Ñ¡¿ ßÑú¼Ñ¡Γá æÄDà ¼«ªÑΓ ΓᬪÑ
- ó«ß»α¿¡¿¼áΓ∞ß∩ ¿¼∩ ßÑú¼Ñ¡Γá æseg, á ó¼ÑßΓ« ¿¼Ñ¡¿
- ßÑú¼Ñ¡Γá DAÆA ¼«ªÑΓ ó«ß»α¿¡¿¼áΓ∞ß∩ ¿¼∩ ßÑú¼Ñ¡Γá
- Dseg.)
- 2. Åα¿ «»¿ßá¡¿¿ »ÑαѼѡ¡δσ ßÑú¼Ñ¡ΓÑ DAÆA ¿½¿ Dseg ñ½∩
- «»αÑñѽѡ¿∩ º¡áτÑ¡¿∩ óßÑúñá ¿ß»«½∞ºπ⌐ΓÑ ó«»α«ß¿-
- Γѽ∞¡δ⌐ º¡á¬ (?). ìá»α¿¼Ñα:
-
- Count DW ?
- Buffer DB 128 DUP(?)
-
- ïεí«⌐ ºá»α«ß ¡á ß«ºñá¡¿Ñ ¿¡¿µ¿á½¿º¿α«óá¡¡δσ
- »ÑαѼѡ¡δσ ó ßÑú¼Ñ¡ΓÑ DAÆA ¿½¿ Dseg ó Æπαí«-Åá߬á½Ñ
- ¿ú¡«α¿απÑΓß∩.
- 3. Åα¿ ßßδ½¬Ñ ¡á »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿ Γ¿»á àòÆRN ¡Ñ
- π¬áºδóá⌐ΓÑ ß¼ÑΘÑ¡¿Ñ. ìÑñ«»πßΓ¿¼á, ¡á»α¿¼Ñα, ß½Ññπε-
- Θá∩ ¬«¡ßΓαπ¬µ¿∩:
-
- EXTRN MyProc : NEAR
- CALL MyProc + 8
-
- çá¼ÑΓ¿¼, τΓ« φΓ« «úαá¡¿τÑ¡¿Ñ ¡Ñ ¬áßáÑΓß∩ »ÑαÑ-
- ¼Ñ¡¡δσ Γ¿»á àòÆRN.
- 4. üá⌐Γ«óδÑ ßß佬¿ ¡á ß¿¼ó«½δ Γ¿»á àòÆRN ¡Ññ«»πßΓ¿¼δ.
- ¥Γ« «º¡áτáÑΓ, ¡á»α¿¼Ñα, τΓ« «»ÑαáΓ«αδ ìIGìÆ ¿ LÄW
- ¡Ñ½∞º∩ ¿ß»«½½∞º«óáΓ∞ ß ß¿¼ó«½á¼¿ Γ¿»á àòÆRN.
-
- Æπαí«-ÇßßѼí½Ñα ¿ Æπαí«-Åá߬á½∞
-
- Æπαí«-ÇßßѼí½Ñα (TASM) º¡áτ¿Γѽ∞¡« «í½ÑúτáÑΓ αáºαáí«Γ¬π
- »α«úαá¼¼ ¡á ∩ºδ¬Ñ áßßѼí½Ñαá ¿ «αúá¡¿ºáµ¿¿ ó ¡¿σ ¿¡ΓÑαΣÑ⌐ßá
- ß »α«úαἼἿ ¡á Æπαí«-Åá߬á½Ñ. Æπαí«-ÇßßѼí½Ñα »«ññÑনóáÑΓ
- ߻ѵ¿Σ¿τÑ߬«Ñ ¿ß»«½∞º«óá¡¿Ñ ßÑú¼Ñ¡Γ«ó, ßσѼπ »á¼∩Γ¿ ¿ ∩ºδ¬«-
- óπε »«ññÑ᪬π ñ½∩ »α«úαá¼¼¿ßΓ«ó, αáí«ΓáεΘ¿σ ¡á
- Æπαí«-Åá߬á½Ñ.
- êß»«½∞ºπ∩ «»µ¿ε TPASCAL ¿ ñ¿αÑ¬Γ¿óπ .MODEL, ¼«ª¡« «íÑß-
- »Ñτ¿Γ∞ ß«í½εñÑ¡¿Ñ ß«ú½áΦÑ¡¿⌐ « ßó∩º∩σ ß Æπαí«-Åá߬á½Ñ¼, «»-
- αÑñѽ¿Γ∞ ¿¼Ñ¡á ßÑú¼ÑΓ«ó, óδ»«½¡¿Γ∞ ¿¡ßΓαπ¬µ¿¿ PUSH BP ¿ MOV
- PB,SP, á Γá¬ªÑ «íÑß»Ñτ¿Γ∞ ó«ºóαáΓ π»αáó½Ñ¡¿∩ ß »«¼«Θ∞ε «»Ñ-
- αáΓ«α«ó POP BP ¿ RET N (úñÑ N - φΓ« τ¿ß½« íá⌐Γ«ó »áαá¼ÑΓαá).
- ä¿αÑ¬Γ¿óá PROC »«ºó«½∩ÑΓ óá¼ ºáñáΓ∞ »áαá¼ÑΓαδ ó Γ«¼ ªÑ
- »«α∩ñ¬Ñ, ¬á¬ «¡¿ «»αÑñѽѡδ ó »α«úαá¼¼Ñ ¡á Æπαí«-Åá߬á½Ñ.
- àß½¿ óδ «»αÑñѽ∩ÑΓÑ Σπ¡¬µ¿ε, ¬«Γ«αá∩ ó«ºóαáΘáÑΓ ßΓ᫬π, «í-
- αáΓ¿ΓÑ ó¡¿¼á¡¿Ñ ¡á Γ«, τΓ« ñ¿αÑ¬Γ¿óá PROC ¿¼ÑÑΓ «»µ¿ε
- RETURN, »«ºó«½∩εΘπε óá¼ »«½πτ¿Γ∞ ñ«ßΓπ» ¬ óαѼѡ¡«¼π π¬áºá-
- Γѽε ßΓ᫬¿ ó ßΓÑ¬Ñ ¿ ¡Ñ «¬áºδóáεΘπε ó½¿∩¡¿∩ ¡á τ¿ß½« íá⌐Γ«ó
- »áαá¼ÑΓαá, ñ«íáó½∩Ѽδσ ó «»ÑαáΓ«αÑ RET.
- Åα¿óÑñѼ »α¿¼Ñαδ ¬«ñá, ó ¬«α«αδσ ¿ß»«½∞ºπεΓß∩ ñ¿αÑ¬Γ¿óδ
- .MODEL ¿ PROC:
-
- .MODEL TPASCAL
- .CODE
- MyProc PROC FAR 1:BYTE, j:BYTE RETURNS result:DWORD
- PUBLIC MyProc
- les di,result ;»«½πτ¿Γ∞ áñαÑß óαѼѡ¡«⌐ ßΓ᫬¿
- mov al,i ;»«½πτ¿Γ∞ »Ñαóδ⌐ »áαá¼ÑΓα i
- mov bl,j ;»«½πτ¿Γ∞ óΓ«α«⌐ »áαá¼ÑΓα j
- .
- .
- .
- ret
-
- Ä»αÑñѽѡ¿Ñ Σπ¡¬µ¿¿ ó Æπαí«-Åá߬á½Ñ íπñÑΓ óδú½∩ñÑΓ∞
- ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- function MyProc(i,j : char) : string external;
-
- ü«½ÑÑ »«ñα«í¡πε ¿¡Σ«α¼áµ¿ε «í ¿¡ΓÑαΣÑ⌐ßÑ ¼Ñªñπ
- Æπαí«-Åá߬á½Ñ¼ ¿ Æπαí«-ÇßßѼí½Ñα«¼ ¼«ª¡« ¡á⌐Γ¿ ó â½áóÑ 7
- "Éπ¬«ó«ñßΓóá »«½∞º«óáΓѽ∩ »« Æπαí«-ÇßßѼí½Ñαπ".
-
- Åα¿¼Ñαδ »α«úαá¼¼ ¡á ∩ºδ¬Ñ áßßѼí½Ñαá
-
- æ½ÑñπεΘá∩ »α«úαá¼¼á ∩ó½∩ÑΓß∩ »α¿¼Ñα«¼ ¼«ñπ½∩ ¿ »αÑñß-
- Γáó½∩ÑΓ ß«í«⌐ ñóÑ »α«úαá¼¼δ ¡á áßßѼí½ÑαÑ, »αÑñ¡áº¡áτÑ¡¡δÑ
- ñ½∩ «íαáí«Γ¬¿ ßΓ᫬. öπ¡¬µ¿∩ UααÑræásÑ »αÑ«íαáºπÑΓ ß¿¼ó«½δ
- ßΓ᫬¿ ó »α«»¿ß¡δÑ íπ¬óδ, á Σπ¡¬µ¿∩ StringOf ó«ºóαáΘáÑΓ
- ßΓ᫬π ß¿¼ó«½«ó ºáñá¡¡«⌐ ñ½¿¡δ.
-
- unit Strings;
- interface
- function UpperCase(S: string):
- error in example ..............
-
- RET ; ¿ºó½Ñτ∞ »áαá¼ÑΓαδ ¿ óδ⌐Γ¿
- SrtingOf ENDP
- CODE ENDS
- END
-
- é ß½ÑñπεΘѼ »α¿¼ÑαÑ »«¬áºá¡á »α«úαá¼¼á ¡á áßßѼí½ÑαÑ,
- ¬«Γ«αá∩ ¼«ªÑΓ ßßδ½áΓ∞ß∩ ¡á »α«úαá¼¼δ ¿ »ÑαѼѡ¡δÑ Åá߬á½∩.
- Åα«úαá¼¼á Number ßτ¿ΓδóáÑΓ ñ« 100 µÑ½δσ º¡áτÑ¡¿⌐ ¿ ºáΓѼ ñ½∩
- »α«óÑન úαá¡¿µ ¬áªñ«ú« ¿º φΓ¿σ º¡áτÑ¡¿⌐ óδºδóáÑΓ »α«úαá¼¼π
- ¡á ∩ºδ¬Ñ áßßѼí½Ñαá. àß½¿ º¡áτÑ¡¿Ñ óδσ«ñ¿Γ ºá úαá¡¿µδ, »α«-
- µÑñπαá, ¡á»¿ßá¡¡á∩ ¡á áßßѼí½ÑαÑ, óδºδóáÑΓ ñ½∩ ¿σ αáß»ÑτáΓ¬¿
- »α«µÑñπαπ, ¡á»¿ßá¡¡πε ¡á ∩ºδ¬Ñ Åá߬á½∞.
-
- program Numbers;
- {$L CHECK}
- var
- Data: array[1..100] of integer;
- Count,I: integer;
- procedure RangeError(N: integer);
- begin
- Writeln('Range error: ',N);
- end;
- procedure CheckRange(Min,Max: integer); external;
- begin
- Count := 0;
- while not Eof and (Count < 100) do
- begin
- Count := Count + 1;
- Readln(Data[Count]);
- end;
- CheckRange(-10,10);
- end;
-
- öá⌐½ ß »α«úαá¼¼«⌐ ¡á áßßѼí½ÑαÑ, αÑ὿ºπεΘ¿⌐ »α«µÑñπαπ
- æheckRángÑ, »α¿ó«ñ¿Γß∩ ñá½ÑÑ. ÅÑαÑñ ¬«¼»¿½∩µ¿Ñ⌐ »α«úαá¼¼δ
- Numbers Ñú« ¡πª¡« áßßÑí¼½¿α«óáΓ∞ ó Σá⌐½ ß ¿¼Ñ¡Ñ¼ æìàæè.ÄéJ.
- çá¼ÑΓ¿¼, τΓ« ñ½∩ »α«µÑñπαδ ¿ß»«½∞ºπÑΓß∩ í½¿ª¡¿⌐ Γ¿» ó맮óá,
- »«ß¬«½∞¬π φΓ« «»¿ßá¡« ó »α«úαá¼¼Ñ.
-
- DATA SEGMENT WORD PUBLIC
- EXTRN Data: WORD, Count: Word ; »ÑαѼѡ¡δÑ Åá߬á½∩
- DATA ENDS
- CODE SEGMENT BYTE PUBLIC
- ASSUME CS: CODE, DS: DATA
- EXTRN RangeError: NEAR ; αÑ὿º«óá¡« ¡á Åá߬á½Ñ
- PUBLIC CheckRange ; αÑ὿º«óá¡δ ºñÑß∞
- CheckRange PROC NEAR
- MOV BX,SP ; »«½πτ¿Γ∞ π¬áºáΓѽ∞ »áαá¼ÑΓα«ó
- MOV AX,SS:[BX+4] ; ºáúαπº¿Γ∞ îin
- MOV DX,SS:[BX+2] ; ºáúαπº¿Γ∞ îáσ
- XOR BX,BX ; «τ¿ßΓ¿ßΓ∞ ¿¡ñÑ¬ß ñá¡¡δσ
- MOV CX,Count ; ºáúαπº¿Γ∞ ßτÑΓτ¿¬
- JCXZ SD4 ; »α«»πßΓ¿Γ∞ Ñß½¿ αáó¡« 0
- SD1: CMP Data[Bx],AX ; ß½¿Φ¬«¼ ¼á½«?;
- JL SD2 ; ñá, »ÑαÑ⌐Γ¿
- CMP Data[BX],DX ; ß½¿Φ¬«¼ óѽ¿¬«?
- JLE SD3 ; ¡ÑΓ, »ÑαÑ⌐Γ¿
- SD2: PUSH AX ; ß«σαá¡¿Γ∞ αÑú¿ßΓαδ
- PUSH BX
- PUSH CX
- PUSH DX
- PUSH Data[BX] ; »ÑαÑñáΓ∞ óδσ«ñ∩ΘÑÑ ºá úαá¡¿µδ
-
- ; º¡áτÑ¡¿Ñ ó Åá߬á½∞
- CALL RangeError ; óδºóáΓ∞ »α«µÑñπαπ ¡á Åá߬á½Ñ
- POP DX ; ó«ßßΓá¡«ó¿Γ∞ αÑú¿ßΓαδ
- POP CX
- POP BX
- POP AX
- SD3: INC BX ; πßΓá¡«ó¿Γ∞ π¬áºáΓѽ∞ ¡á
- ß½Ññπ-
- ; εΘ¿⌐ φ½Ñ¼Ñ¡Γ
- INC BX
- LOOP SD1 ; »«óΓ«α¿Γ∞ µ¿¬½ ñ½∩ ¬áªñ«ú«
- ; φ½Ñ¼Ñ¡Γá
- SD4: RET 4 ; «τ¿ßΓ¿Γ∞ ßΓѬ ¿ ó«ºóαáΓ¿Γ∞
- ; π»αáó½Ñ¡¿Ñ
- CheckRange ENDS
- END
-
- Åα¿¼Ñα ¡á Æπαí«-ÇßßѼí½ÑαÑ
-
- Åα¿óÑñѼ »α¿¼Ñα »α«úαá¼¼δ ¡á Æπαí«-ÇßßѼí½ÑαÑ, ó ¬«Γ«-
- α«¼ ¿ß»«½∞ºπεΓß∩ óßÑ »αÑ¿¼πΘÑßΓóá »«ññÑ᪬¿ ó TASM ßαÑñßΓó
- ßó∩º¿ ß Æπαí«-Åá߬á½Ñ¼. ¥Γ«Γ »α¿¼Ñα ∩ó½∩ÑΓ¼∩ ¼«ñ¿Σ¿¬áµ¿Ñ⌐
- »αÑñδñπΘÑ⌐ »α«úαá¼¼δ.
-
- .MODEL TPASCAL ; ¼«ñѽ∞ ¬«ñá Æπαí«-Åá߬á½∩
- LOCALS @@ ; «»αÑñѽ¿Γ∞ ½«¬á½∞¡δ⌐
- ; »αÑΣ¿¬ß ¼ÑΓ«¬
- .DATA ; ßÑú¼Ñ¡Γ ñá¡¡δσ
- EXTRN Buffer:WORD,COunt:WORD ; »Ñα¼Ñ¡¡δÑ Åá߬á½∩
- .CODE ; ßÑú¼Ñ¡Γ ¬«ñá
- EXTRN RangeError: NEAR ; αÑ὿º«óá¡« ¡á Åá߬á½Ñ
- PUBLIC CheckRange ; αÑ὿º«óá¡δ ºñÑß∞
- CheckRange PROC NEAR
- MOV BX,SP ; »«½πτ¿Γ∞ π¬áºáΓѽ∞
- »áαá¼ÑΓα«ó
- MOV AX,SS:[BX+4] ; ºáúαπº¿Γ∞ îin
- MOV DX,SS:[BX+2] ; ºáúαπº¿Γ∞ îáσ
- XOR BX,BX ; «τ¿ßΓ¿ßΓ∞ ¿¡ñÑ¬ß ñá¡¡δσ
- MOV CX,Count ; ºáúαπº¿Γ∞ ßτÑΓτ¿¬
- JCXZ SD4 ; »α«»πßΓ¿Γ∞ Ñß½¿ αáó¡« 0
- @@1: CMP Data[Bx],AX ; ß½¿Φ¬«¼ ¼á½«?;
- JL SD2 ; ñá, »ÑαÑ⌐Γ¿
- CMP Data[BX],DX ; ß½¿Φ¬«¼ óѽ¿¬«?
- JLE SD3 ; ¡ÑΓ, »ÑαÑ⌐Γ¿
- @@2: PUSH AX ; ß«σαá¡¿Γ∞ αÑú¿ßΓαδ
- PUSH BX
- PUSH CX
- PUSH DX
- PUSH Data[BX] ; »ÑαÑñáΓ∞ óδσ«ñ∩ΘÑÑ ºá úαá-
- ; ¡¿µδ º¡áτÑ¡¿Ñ ó Åá߬á½∞
- CALL RangeError ; óδºóáΓ∞ »α«µÑñπαπ ¡á Åá߬á½Ñ
- POP DX ; ó«ßßΓá¡«ó¿Γ∞ αÑú¿ßΓαδ
- POP CX
- POP BX
- POP AX
- @@3: INC BX ; πßΓá¡«ó¿Γ∞ π¬áºáΓѽ∞ ¡á ß½Ñ-
- ; ñπεΘ¿⌐ φ½Ñ¼Ñ¡Γ
- INC BX
- LOOP SD1 ; »«óΓ«α¿Γ∞ µ¿¬½ ñ½∩ ¬áªñ«ú«
- ; φ½Ñ¼Ñ¡Γá
- @@4: RET ; «τ¿ßΓ¿Γ∞ ßΓѬ ¿ ó«ºóαáΓ¿Γ∞
- ; π»αáó½Ñ¡¿Ñ
- CheckRange ENDS
- END
-
- çá¼ÑΓ¿¼, τΓ« »α¿ ¿ß»«½∞º«óá¡¿¿ ñ¿αÑ¬Γ¿óδ .MODEL TPASCAL
- Æπαí«-ÇßßѼí½Ñα íπñÑΓ áóΓ«¼áΓ¿τÑ߬¿ úÑ¡Ñα¿α«óáΓ∞ »ÑαÑñ »Ñα-
- ó«⌐ ¿¡ßΓαπ¬µ¿Ñ⌐ ßΓá¡ñáαΓ¡δÑ «»ÑαáΓ«αδ óσ«ñá ¿ ßΓá¡ñáαΓ¡δÑ
- «»ÑαáΓ«αδ óδσ«ñá »«ß½Ñ ¿¡ßΓαπ¬µ¿¿ RET.
-
- é¡πΓαÑ¡¡¿⌐ ¼áΦ¿¡¡δ⌐ ¬«ñ
-
- ä½∩ ¡Ñí«½∞Φ¿σ »«ñ»α«úαá¼¼ ¡á ∩ºδ¬Ñ áßßѼí½Ñαá «τÑ¡∞
- πñ«í¡« ¿ß»«½∞º«óáΓ∞ ó¡πΓαÑ¡¡¿Ñ ñ¿αÑ¬Γ¿óδ ¿ «»ÑαáΓ«αδ Æπα-
- í«-Åá߬á½∩ («»ÑαáΓ«αδ inline). Ä¡¿ »«ºó«½∩εΓ óßΓáó½∩Γ∞ ¿¡ßΓ-
- απ¬µ¿¿ ¼áΦ¿¡¡«ú« ¬«ñá ¡Ñ»«ßαÑñßΓóÑ¡¡« ó »α«úαá¼¼π ¿½¿ ΓѬßΓ
- í½«¬á, ó¼ÑßΓ« Γ«ú«, τΓ«íδ ¿ß»«½∞º«óáΓ∞ «íΩÑ¬Γ¡δ⌐ Σá⌐½.
-
- Ä»ÑαáΓ«αδ Inline
-
- Ä»ÑαáΓ«α inline ß«ßΓ«¿Γ ¿º ºáαѺÑαó¿α«óá¡¡«ú« ß½«óá
- Inline, ºá ¬«Γ«αδ¼ ß½ÑñπÑΓ «ñ¿¡ ¿½¿ í«½ÑÑ ó¡πΓαÑ¡¡¿σ ºá»¿-
- ßÑ⌐ (ºá»¿ßÑ⌐ ¼áΦ¿¡¡«ú« ¬«ñá), αáºñѽѡ¡δσ ¬«ß«⌐ τÑαΓ«⌐ ¿
- ºá¬½ετÑ¡¡δσ ó ¬απú½δÑ ß¬«í¬¿:
-
- inline(10/$2345/Count+1/Data-Offset);
-
- Ä»ÑαáΓ«α inline ¿¼ÑÑΓ ß½ÑñπεΘ¿⌐ ß¿¡Γá¬ß¿ß:
-
- -------- --- -------------- ---
- Ä»ÑαáΓ«α -->( inline )->( ( )-->! ºá»¿ß∞ ó« !-->( ) )-->
- inline -------- --- ^ ! ó¡πΓαÑ¡¡Ñ¼ ! ! ---
- ! ! ¼áΦ¿¡¡«¼ ! !
- ! ! ¬«ñÑ ! !
- ! -------------- !
- ! !
- ! --- !
- -------( / )<-----
- ---
-
- èáªñδ⌐ «»ÑαáΓ«α inline ß«ßΓ«¿Γ ¿º ¡Ñ«í∩ºáΓѽ∞¡«ú« ß»Ñ-
- µ¿Σ¿¬áΓ«αá αẼÑαá, < ¿½¿ > ¿ ¬«¡ßΓá¡Γδ ¿½¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá
- »ÑαѼѡ«⌐, ºá ¬«Γ«α«⌐ ß½ÑñπεΓ ¡«½∞ ¿½¿ í«½ÑÑ ß»Ñµ¿Σ¿¬áΓ«α«ó
- ß¼ÑΘÑ¡¿∩ (ß¼. «»¿ßá¡¡δ⌐ ñá½ÑÑ ß¿¡Γá¬ß¿ß). æ»Ñµ¿Σ¿¬áΓ«α ß¼Ñ-
- ΘÑ¡¿∩ ß«ßΓ«¿Γ ¿º + ¿½¿ -, ºá ¬«Γ«αδ¼ ß½ÑñπÑΓ ¬«¡ßΓá¡Γá.
- èáªñá∩ ó¡πΓαÑ¡¡∩∩ ºá»¿ß∞ »«α«ªñáÑΓ 1 íá⌐Γ ¿½¿ «ñ¡« ß½«-
- ó« ¬«ñá. ç¡áτÑ¡¿∩ óδτ¿ß½∩ÑΓß∩, ¿ßσ«ñ∩ ¿º º¡áτÑ¡¿∩ »Ñαó«⌐
- ¬«¡ßΓá¡Γδ ¿½¿ ß¼ÑΘÑ¡¿∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá »ÑαѼѡ¡«⌐, ¬ ¬«Γ«α«¼π
- ñ«íáó½∩ÑΓß∩ ¿½¿ ¿º ¬«Γ«α«ú« óδτ¿ΓáÑΓß∩ º¡áτÑ¡¿Ñ ¬áªñ«⌐ ¿º
- »«ß½ÑñπεΘ¿σ ¬«¡ßΓá¡Γ.
-
- -------------
- çỿß∞ ó« ----------------------->! ¬«¡ßΓá¡Γá !---------->
- ó¡πΓαÑ¡¡Ñ¼ ! --- ^ ------------- ^
- ¼áΦ¿¡¡«¼ !-->( < )------! !
- ¬«ñÑ ! --- ! !
- ! --- ! !
- !-->( > )------- !
- ! --- !
- ! ----------------- !
- -->! ¿ñÑ¡Γ¿Σ¿¬áΓ«α !-----------------------
- ! »ÑαѼѡ¡«⌐ ! ! ^
- ----------------- ! !
- ------ -------
- ! ------ ----------- !
- ------>!º¡á¬!-->!¬«¡ßΓá¡Γá!----
- ^ ------ ----------- !
- ! !
- ---------------------------
-
- àß½¿ ºá»¿ß∞ ó ¼áΦ¿¡¡«¼ ¬«ñÑ ß«ßΓ«¿Γ Γ«½∞¬« ¿º ¬«¡ßΓá¡Γ
- ¿ Ñß½¿ ÑÑ º¡áτÑ¡¿Ñ ½Ñª¿Γ ó 8-í¿Γ«ó«¼ ñ¿á»áº«¡Ñ (0..255), Γ«
- «¡á »«α«ªñáÑΓ «ñ¿¡ íá⌐Γ ¬«ñá. àß½¿ º¡áτÑ¡¿Ñ óδσ«ñ¿Γ ºá úαá-
- ¡¿µπ 8-í¿Γ«ó«ú« ñ¿á»áº«¡á ¿½¿ Ñß½¿ ó¡πΓαÑ¡¡∩∩ ºá»¿ß∞ ßßδ½á-
- ÑΓß∩ ¡á »ÑαѼѡ¡πε, Γ« úÑ¡Ñα¿απÑΓß∩ «ñ¡« ß½«ó« ¬«ñá (¼½áñΦ¿⌐
- º¡áτáΘ¿⌐ íá⌐Γ ß½ÑñπÑΓ »Ñαóδ¼).
- Ä»ÑαáΓ«αδ < ¿ > ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ «Γ¼Ñ¡δ áóΓ«¼á-
- Γ¿τÑ߬«ú« óδí«αá αẼÑαá, ¬«Γ«αδ⌐ íδ½ «»¿ßá¡ αá¡ÑÑ. àß½¿
- «»ÑαáΓ«α inline ¡áτ¿¡áÑΓß∩ ß «»ÑαáΓ«αá <, Γ« ó ¬«ñ ó¬½ε-
- τáÑΓß∩ Γ«½∞¬« ¼½áñΦ¿⌐ º¡áτáΦ¿⌐ íá⌐Γ º¡áτÑ¡¿∩, ñáªÑ Ñß½¿ φΓ«
- 16-í¿Γ«ó«Ñ º¡áτÑ¡¿Ñ. àß½¿ «»ÑαáΓ«α inline ¡áτ¿¡áÑΓß∩ ß
- «»ÑαáΓ«αá >, Γ« ó ¬«ñ ó¬½ετáÑΓß∩ óßÑúñá ß½«ó«, ñáªÑ Ñß½¿
- ßΓáαΦ¿⌐ º¡áτáΘ¿⌐ íá⌐Γ αáóÑ¡ 0. ìá»α¿¼Ñα, «»ÑαáΓ«α:
-
- inline(<$1234/>$44);
-
- úѡѡ¿απÑΓ ¬«ñ ñ½¿¡«⌐ Γα¿ íá⌐Γá: $34,$44,$00.
- ç¡áτÑ¡¿Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá »ÑαѼѡ¡«⌐ ó« ó¡πΓαÑ¡¡Ñ⌐ ºá»¿ß¿
- »αÑñßΓáó½∩ÑΓ ß«í«⌐ áñαÑß ß¼ÑΘÑ¡¿∩ »ÑαѼѡ¡«⌐ ó¡πΓα¿ ÑÑ íẫ-
- ó«ú« ßÑú¼Ñ¡Γá. üẫóδ⌐ ßÑú¼Ñ¡Γ ú½«íá½∞¡δσ »ÑαѼѡ¡δσ (»ÑαÑ-
- ¼Ñ¡¡δσ, «»¿ßá¡¡δσ ¡á ßἫ¼ ó¡ÑΦ¡Ñ¼ πα«ó¡Ñ ó ¼«ñπ½Ñ ¿½¿ »α«ú-
- αá¼¼Ñ) ¿ Γ¿»¿º«óá¡¡δÑ ¬«¡ßΓá¡Γδ, ñ«ßΓπ» ¬ ¬«Γ«αδ¼ «αúá¡¿º«-
- óá¡ τÑαѺ αÑú¿ßΓα DS, »αÑñßΓáó½∩εΓ ß«í«⌐ ßÑú¼Ñ¡Γ ñá¡¡δσ. üá-
- º«óδ⌐ ßÑú¼Ñ¡Γ ½«¬á½∞¡δσ »ÑαѼѡ¡δσ (»ÑαѼѡ¡δσ, «»¿ßá¡¡δσ
- ó¡πΓα¿ »«ñ»α«úαá¼¼δ) ∩ó∩ÑΓß∩ ßÑú¼Ñ¡Γ«¼ ßΓѬá. é φΓ«¼ ß½πτáÑ
- ß¼ÑΘÑ¡¿Ñ »ÑαѼѡ¡«⌐ «Γ¡«ß¿Γß∩ ó αÑú¿ßΓαπ éÉ, τΓ« áóΓ«¼áΓ¿-
- τÑ߬¿ ó½ÑτÑΓ ºá ß«í«⌐ óδí«α ßÑú¼Ñ¡Γá ßΓѬá.
-
- Åα¿¼Ñτá¡¿Ñ: ÉÑú¿ßΓαδ éÉ, SÉ, SS ¿ DS ñ«½ª¡δ ß«σαá¡∩Γ∞-
- ß∩ ß »«¼«Θ∞ε ó¡πΓαÑ¡¡¿σ «»ÑαáΓ«α«ó. ç¡áτÑ¡¿Ñ óßÑσ ñαπ-
- ú¿σ αÑú¿ßΓα«ó ¼«ª¡« ¿º¼Ñ¡∩Γ∞.
-
- é ß½ÑñπεΘѼ »α¿¼ÑαÑ «»ÑαáΓ«αá inline úÑ¡Ñα¿απÑΓß∩
- ¼áΦ¿¡¡δ⌐ ¬«ñ ñ½∩ ºá»¿ß¿ ºáñá¡¡«ú« τ¿ß½á ß½«ó ¿½¿ ñá¡¡δσ ó
- π¬áºá¡¡πε »ÑαѼѡ¡πε. Åα¿ ó맮óÑ »α«µÑñπαδ FillWord Count
- ß½«ó ß« º¡áτÑ¡¿Ñ¼ Data ºá»¿ßδóáÑΓß∩ ó »á¼∩Γ¿, ¡áτ¿¡á∩ ß »Ñα-
- ó«ú« íá⌐Γá, «í«º¡áτÑ¡¡«ú« ¬á¬ Dest.
-
- procedure FillWord(var Dest, Count, Data: word);
- begin
- inline(
- $C4/$BE/Dest/ { LES DI,Dest[BP] }
- $8B/$8e/Count/ { MOV CX,Xount[BP] }
- $8B/$86/Data/ { MOV AX,Data[BP] }
- $FC/ { CLD }
- $F3/$AB); { REP STOSW }
-
- é «»ÑαáΓ«α¡«⌐ τáßΓ¿ í½«¬á «»ÑαáΓ«αδ inline ¼«úπΓ ßó«-
- í«ñ¡« τÑαÑñ«óáΓ∞ß∩ ß ñαπú¿¼¿ «»ÑαáΓ«αἿ.
-
- ä¿αÑ¬Γ¿óδ inline
-
- ä¿αÑ¬Γ¿óδ inline »«ºó«½∩εΓ »¿ßáΓ∞ »α«µÑñπαδ ¿ Σπ¡¬µ¿¿,
- ¬«Γ«αδÑ »αÑ«íαáºπεΓß∩ »α¿ ¬áªñ«¼ ó맮óÑ ó ºáñá¡¡πε »«ß½Ñ-
- ñ«óáΓѽ∞¡«ßΓ∞ ¿¡ßΓαπ¬µ¿⌐, »αÑñßΓáó½∩εΘ¿σ ß«í«⌐ ¼áΦ¿¡¡δ⌐ ¬«ñ.
- æ¿¡Γá¬ß¿ß π ñ¿αÑ¬Γ¿óδ inline Γᬫ⌐ ªÑ, ¬á¬ π «»ÑαáΓ«αá
- inline:
-
- --------------
- ä¿αÑ¬Γ¿óá ---------------------->! «»ÑαáΓ«α !-->
- inline ! inline !
- --------------
-
- Åα¿ ó맮óÑ «íδτ¡«⌐ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿ (ó¬½ετá∩ ΓÑ,
- ¬«Γ«αδÑ ß«ñÑαªáΓ ó ßÑíÑ «»ÑαáΓ«αδ inline) ¬«¼¿½∩Γ«α«¼ úÑ¡Ñ-
- α¿απÑΓß∩ Γᬫ⌐ ¬«ñ, ó ¬«Γ«α«¼ »áαá¼ÑΓαδ (Ñß½¿ «¡¿ ¿¼ÑεΓ-
- ß∩) »«¼ÑΘáεΓß∩ ó ßΓѬ, á ºáΓѼ πªÑ ñ½∩ «íαáΘÑ¡¿∩ ¬ »α«µÑñπαÑ
- ¿½¿ Σπ¡¬µ¿¿ úÑ¡Ñα¿απÑΓß∩ ¿¡ßΓαπ¬µ¿∩ æÇLL. Äñ¡á¬«, ¬«úñá óδ
- «íαáΘáÑΓÑß∞ ¬ »α«µÑñπαÑ ¿½¿ Σπ¡¬µ¿¿ Γ¿»á inline, ¬«¼»¿½∩Γ«α
- ó¼ÑßΓ« ¿¡ßΓαπ¬µ¿¿ æÇLL úÑ¡Ñα¿απÑΓ ¬«ñ ¿º ñ¿αÑ¬Γ¿óδ inline.
- é«Γ ¬«α«Γ¬¿⌐ »α¿¼Ñα ñóπσ ñ¿αÑ¬Γ¿ó inline:
-
- procedure DisableInterrupts; inline($FA); { CLI }
- procedure EnableInterrupts; inline($FB); { STI }
-
- è«úñá óδºδóáÑΓß∩ »α«µÑñπαá DisableInterrupt Γ« úÑ¡Ñα¿-
- απÑΓß∩ «ñ¿¡ íá⌐Γ ¬«ñá - ¿¡ßΓαπ¬µ¿∩ æLI.
- Åα«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿, «»¿ßá¡¡δÑ ß »«¼«Θ∞ε ñ¿αÑ¬Γ¿ó
- inline, ¼«úπΓ ¿¼ÑΓ∞ »áαá¼ÑΓαδ, «ñ¡á¬« ¡á »áαá¼ÑΓαδ ¡Ñ½∞º∩
- ßßδ½áΓ∞ß∩ ß¿¼ó«½¿τÑ߬¿ (σ«Γ∩ ñ½∩ ñαπú¿σ »ÑαѼѡ¡δσ φΓ« ñ«-
- »π߬áÑΓß∩). è Γ«¼π ªÑ »«ß¬«½∞¬π Γá¬¿Ñ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿
- Σá¬Γ¿τÑ߬¿ ∩ó½∩εΓß∩ ¼á¬α«¬«¼á¡ñἿ, π ¡¿σ «ΓßπΓßΓóπεΓ áóΓ«-
- ¼áΓ¿τÑ߬¿⌐ ¬«ñ ß ¿¡ßΓαπ¬µ¿∩¼¿ óσ«ñá ¿½¿ óδσ«ñá ¿ ¡¿¬á¬¿σ
- ¿¡ßΓαπ¬µ¿⌐ ó«ºóαáΓá π»αáó½Ñ¡¿∩ ¡Ñ ΓαÑíπÑΓß∩.
- æ½ÑñπεΘá∩ Σπ¡¬µ¿∩ »α«¿ºó«ñ¿Γ π¼¡«ªÑ¡¿Ñ ñóπσ µÑ½δσ º¡á-
- τÑ¡¿⌐, ó αѺπ½∞ΓáΓÑ τÑú« »«½πτáÑΓß∩ τ¿ß½« ñ½¿¡¡«ú« µÑ½«ú«
- Γ¿»á:
-
- function LongMul(X,Y : integer): longint;
- inline(
- $58/ { POP DS ; ¿ºó½Ñτ∞ ¿º ßΓѬá Y }
- $5A/ { POP AX ; ¿ºó½Ñτ∞ ¿º ßΓѬá X }
- $F7/$EA); { IMUL DX ; DX:AX = X*Y }
-
- ÄíαáΓ¿ΓÑ ó¡¿¼á¡¿Ñ ¡á «ΓßπΓßΓó¿Ñ ¿¡ßΓαπ¬µ¿⌐ óσ«ñá ¿ óδ-
- σ«ñá ¿ ¿¡ßΓαπ¬µ¿¿ ó«ºóαáΓá π»αáó½Ñ¡¿∩. êσ »α¿ßπΓßΓó¿∩ ¡Ñ
- ΓαÑíπÑΓß∩, »«ß¬«½∞¬π »α¿ ó맮óÑ φΓ«⌐ Σπ¡¬µ¿¿ ß«ñÑαªáΘ¿Ñß∩ ó
- ¡Ñ⌐ τÑΓδαÑ íá⌐Γá »α«ßΓ« ó¬½ετáεΓß∩ ó ΓѬßΓ »α«úαá¼¼δ.
- ä¿αÑ¬Γ¿óδ inline »αÑñ¡áº¡áτÑ¡δ Γ«½∞¬« ñ½∩ «τÑ¡∞ ¬«α«Γ-
- ¬¿σ (¼Ñ¡ÑÑ 10 íá⌐Γ«ó) »α«µÑñπα ¿ Σπ¡¬µ¿⌐.
- êº-ºá Γ«ú«, τΓ« »α«µÑñπαδ ¿ Σπ¡¬µ¿¿ Γ¿»á inline ¿¼ÑεΓ
- σáαá¬ΓÑα ¼á¬α««»αÑñѽѡ¿⌐, «¡¿ ¡Ñ ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ ó ¬á-
- τÑßΓóÑ áαúπ¼Ñ¡Γá «»ÑαáΓ«αá @ ¿½¿ ó Σπ¡¬µ¿∩σ Addr, Äffs ¿
- Seg.
-
- Åα∩¼á∩ »á¼∩Γ∞ ¿ ñ«ßΓπ» ¬ »«αΓá¼
-
- îáßß¿óδ îѼ, îѼW ¿ îѼL
-
- é Æπαí«-Åá߬á½Ñ αÑ὿º«óá¡δ Γα¿ »αÑñ«»αÑñѽѡ¡δσ ¼áßß¿-
- óá - îѼ, îѼW ¿ îѼL. ¥Γ¿ ¼áßß¿óδ ¿ß»«½∞ºπεΓß∩ ñ½∩ »α∩¼«ú«
- ñ«ßΓπ»á ¬ »á¼∩Γ¿. èáªñδ⌐ φ½Ñ¼Ñ¡Γ ¼áßß¿óá îѼ »αÑñßΓáó½∩ÑΓ
- ß«í«⌐ íá⌐Γ, ¬áªñδ⌐ φ½Ñ¼Ñ¡Γ îѼW - φΓ« ß½«ó«, á ¬áªñδ⌐ φ½Ñ-
- ¼Ñ¡Γ ¼áßß¿óá îѼL ∩ó½∩ÑΓß∩ º¡áτÑ¡¿Ñ¼ ñ½¿¡¡«ú« µÑ½«ú« Γ¿»á.
- ä½∩ ¿¡ñѬ߫ó ¼áßß¿ó«ó îѼ ¿ß»«½∞ºπÑΓß∩ ߻ѵ¿á½∞¡δ⌐ ß¿¡-
- Γá¬ß¿ß: ñ½∩ Γ«ú«, τΓ«íδ ºáñáΓ∞ íẫóδ⌐ ßÑú¼Ñ¡Γ ¿ ß¼ÑΘÑ¡¿∩
- ñ½∩ ∩τÑ⌐¬¿ »á¼∩Γ¿, ¬ ¬«Γ«α«⌐ »α«¿ºó«ñ¿Γß∩ ñ«ßΓπ», ¿ß»«½∞ºπ-
- εΓß∩ ñóá óδαáªÑ¡¿∩ µÑ½«ú« Γ¿»á ñ½¿¡«⌐ ó ß½«ó«, αáºñѽѡ¡δÑ
- ñó«ÑΓ«τ¿Ñ¼. Åα¿óÑñѼ ¡Ñ߬«½∞¬« »α¿¼Ñα«ó:
-
- Mem[$0040 : $0049] := 7;
- Data := Mem[Seg(V) : Ofs(V)];
- MemLong := MemL[64 : 3*4];
-
- ÅÑαóδ⌐ «»ÑαáΓ«α ß«σαá¡∩ÑΓ º¡áτÑ¡¿Ñ 7 ó íá⌐ΓÑ
- $0040:$0049. éΓ«α«⌐ «»ÑαáΓ«α »«¼ÑΘáÑΓ º¡áτÑ¡¿Ñ ñ½¿¡«⌐ ó ß½«-
- ó«, ºá»¿ßá¡¡«Ñ ó »Ñαóδσ ñóπσ íá⌐Γáσ »ÑαѼѡ¡«⌐ V, ó »ÑαѼѡ-
- ¡πε Data. ÆαÑΓ¿⌐ «»ÑαáΓ«α »«¼ÑΘáÑΓ º¡áτÑ¡¿Ñ ñ½¿¡¡«ú« µÑ½«ú«
- Γ¿»á, ºá»¿ßá¡¡«Ñ »« áñαÑßπ $0040:$000æ ó »ÑαѼѡ¡πε îѼLong.
-
- îáßß¿óδ É«rt ¿ É«rtW
-
- ä½∩ ñ«ßΓπ»á ¬ »«αΓá¼ ñá¡¡δσ µÑ¡Γαá½∞¡«ú« »α«µÑßß«αá
- 80σ86 ó Æπαí«-Åá߬á½Ñ αÑ὿º«óá¡δ ñóá »αÑñ«»αÑñѽѡ¡δσ ¼áß-
- ß¿óá - É«rt ¿ É«rtW. Äíá ¼áßß¿óá ∩ó½∩εΓß∩ «ñ¡«¼Ñα¡δ¼¿ ¿ ¬áª-
- ñδ⌐ φ½Ñ¼Ñ¡Γ »αÑñßΓáó½∩ÑΓ ß«í«⌐ »«αΓ ñá¡¡δσ, ñ½∩ ¬«Γ«αδσ áñ-
- αÑß »«αΓá ß««ΓóÑΓßΓóπÑΓ ¿¡ñѬßπ. ê¡ñѬ߫¼ ∩ó½∩ÑΓß∩ º¡áτÑ¡¿Ñ
- µÑ½«ú« Γ¿»á ñ½¿¡«⌐ ó ß½«ó«. ¥½Ñ¼Ñ¡Γδ ¼áßß¿óá É«rt ¿¼ÑεΓ ñ½¿-
- ¡π «ñ¿¡ íá⌐Γ, á φ½Ñ¼Ñ¡Γδ ¼áßß¿óá É«rtW ¿¼ÑεΓ ñ½¿¡π «ñ¡« ß½«-
- è«úñá φ½Ñ¼Ñ¡Γπ ¼áßß¿óá É«rt ¿½¿ É«rtW »α¿ßóá¿óáÑΓß∩
- º¡áτÑ¡¿Ñ, Γ« φΓ« º¡áτÑ¡¿Ñ »αÑñßΓáó½∩ÑΓ ß«í«⌐ óδó«ñ ó óδíαá¡-
- ¡δ⌐ »«αΓ. è«úñá φ½Ñ¼Ñ¡Γδ ¼áßß¿óá É«rt ¿½¿ É«rtW ∩ó½∩εΓß∩
- ßßδ½¬á¼¿ ¡á óδαáªÑ¡¿Ñ, Ñú« º¡áτÑ¡¿Ñ »αÑñßΓáó½∩ÑΓ ß«í«⌐ óó«ñ
- ¿º óδíαá¡¡«ú« »«αΓá. Åα¿óÑñѼ ¡Ñ߬«½∞¬« »α¿¼Ñα«ó:
-
- Port[$20] := $20;
- Port[Base] := Port[Base] xor Mask;
- while Port[$B2] and $80 = 0 do { «ª¿ñá¡¿Ñ }
-
- êß»«½∞º«óá¡¿Ñ ¼áßß¿ó«ó É«rt ¿ É«rtW «úαá¡¿τÑ¡« Γ«½∞¬« ó
- «Γ¡«ΦÑ¡¿¿ »α¿ßóá¿óá¡¿∩ ¿ ßß佬¿ ¡á óδαáªÑ¡¿Ñ, Γ« ÑßΓ∞ φ½Ñ-
- ¼Ñ¡Γδ ¼áßß¿ó«ó É«rt ¿ É«rtW ¡Ñ ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ ó ¬á-
- τÑßΓóÑ »áαá¼ÑΓα«ó-»ÑαѼѡ¡δσ. ü«½ÑÑ Γ«ú«, ßß佬¿ ¡á óÑß∞
- ¼áßß¿ó É«rt ¿½¿ É«rtW (íѺ π¬áºá¡¿∩ ¿¡ñѬ߫ó) ¡Ñ ñ«»π߬áεΓ-
- ß∩.
-
- Äíαáí«Γ¬á »αÑαδóá¡¿⌐
-
- ü¿í½¿«ΓÑ¬á ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ Æπαí«-Åá߬á½∩ ¿ ¬«ñ,
- ß«ºñáóáѼδ⌐ ¬«¼»¿½∩Γ«α«¼, ∩ó½∩εΓß∩ »«½¡«ßΓ∞ε »αÑαδóáÑ¼δ¼¿.
- ü«½∞Φ¿¡ßΓó« ¿º »α«úαá¼¼ í¿í½¿«ΓѬ¿ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓѼδ ∩ó½∩-
- εΓß∩ Γá¬ªÑ αÑÑ¡ΓÑαáíѽ∞¡δ¼¿, τΓ« »«ºó«½∩ÑΓ óá¼ »¿ßáΓ∞ ¡á
- Æπαí«-Åá߬á½Ñ »α«úαá¼¼δ «íαáí«Γ¬¿ »αÑαδóá¡¿⌐.
-
- Éáºαáí«Γ¬á »α«µÑñπα «íαáí«Γ¬¿ »αÑαδóá¡¿⌐
-
- Åα«µÑñπαδ «íαáí«Γ¬¿ »αÑαδóá¡¿⌐ «»¿ßδóáεΓß∩ ß »«¼«Θ∞ε
- ñ¿αÑ¬Γ¿óδ Interrupt. é ¬áªñ«⌐ »α«µÑñπαÑ «íαáí«Γ¬¿ »αÑαδóá-
- ¡¿⌐ ñ«½ªÑ¡ «»αÑñѽ∩Γ∞ß∩ ß½ÑñπεΘ¿⌐ ºáú«½«ó«¬ »α«µÑñπαδ (¿½¿,
- ¬á¬ íπñÑΓ »«∩ß¡∩Γ∞ß∩ ñá½ÑÑ, Ñú« »«ñ¼¡«ªÑßΓó«):
-
- procedure IntHandler(Flags,CS,IPAX,BX,CX,DX,SI,DI,DS,ES,BP:
-
- word);
- interrupt;
- begin
- .
- .
- .
- end;
-
- èᬠ¼«ª¡« ó¿ñÑΓ∞, óßÑ αÑú¿ßΓαδ »ÑαÑñáεΓß∩ ó ¬áτÑßΓóÑ
- »ßÑóñ«-»áαá¼ÑΓα«ó, ΓᬠτΓ« óδ ¼«ªÑΓÑ ¿σ ¿ß»«½∞º«óáΓ∞ ¿ ¿º¼Ñ-
- ¡∩Γ∞ ó ßó«Ñ⌐ »α«úαá¼¼Ñ. éδ ¼«ªÑΓÑ «»πßΓ¿Γ∞ ¡Ñ¬«Γ«αδÑ ¿º »á-
- αá¼ÑΓα«ó ¿½¿ óßÑ »áαá¼ÑΓαδ, ¡áτ¿¡á∩ ß »áαá¼ÑΓαá Flag ¿ ¬«¡-
- τá∩ éÉ. Å«»δΓ¬á «»¿ßáΓ∞ í«½∞ΦÑÑ ¬«½¿τÑßΓó« »áαá¼ÑΓα«ó ¿½¿
- »«»δΓ¬á «»πßΓ¿Γ∞ «Γñѽ∞¡δ⌐ »áαá¼ÑΓα íѺ »α«»π߬á Γá¬ªÑ Γ«ú«
- »áαá¼ÑΓαá, ºá ¬«Γ«αδ¼ «¡ ß½ÑñπÑΓ, ∩ó½∩ÑΓß∩ «Φ¿í¬«⌐, σ«Γ∩ ß«-
- «íΘÑ¡¿∩ « ¡Ñ⌐ ¡Ñ óδñáÑΓß∩. ìá»α¿¼Ñα:
-
- procedure IntHandler(DI,ES,BP : word);
- procedure IntHandler(SI,DI,DS,ES,BP : word);
-
- Åα¿ óσ«ñÑ ó ¡ÑÑ »α«µÑñπαá «íαáí«Γ¬¿ »αÑαδóá¡¿⌐ áóΓ«¼á-
- Γ¿τÑ߬¿ ß«σαá¡∩ÑΓ óßÑ αÑú¿ßΓαδ (¡Ñºáó¿ß¿¼« «Γ ºáú«½«ó¬á »α«-
- µÑñπαδ) ¿ ¿¡¿µ¿á½¿º¿απÑΓ αÑú¿ßΓα DS:
-
- PUSH AX
- PUSH BX
- PUSH DX
- PUSH SI
- PUSH DI
- PUSH DS
- PUSH ES
- PUSH BP
- MOV BP,SP
- SUB SP,LocalSize
- MOV AX,SEG DATA
- MOV DS,AX
-
- ÄíαáΓ¿ΓÑ ó¡¿¼á¡¿Ñ ¡á «ΓßπΓßΓó¿Ñ »α«µÑñπαδ æLI, τΓ«íδ
- αáºαÑΦ¿Γ∞ ñá½∞¡Ñ⌐Φ¿Ñ »αÑαδóá¡¿∩. æ »«¼«Θ∞ε «»ÑαáΓ«αá inline
- óδ ¼«ªÑΓÑ ¡á»¿ßáΓ∞ ÑÑ ßἿ (Ñß½¿ φΓ« ¡Ñ«íσ«ñ¿¼«). ìáí«α «»Ñ-
- αáΓ«α«ó óδσ«ñá ó«ßßΓá¡áó½¿óáÑΓ αÑú¿ßΓαδ ¿ óδ»«½¡∩ÑΓ Σπ¡¬-
- µ¿ε ó«ºóαáΓá »αÑαδóá¡¿∩:
-
- MOV SP,BP
- POP BP
- POP ES
- POP DS
- POP DI
- POP SI
- POP DX
- POP CX
- POP BX
- POP AX
- IRET
-
- Åα«µÑñπαá «íαáí«Γ¬¿ »αÑαδóá¡¿⌐ ¼«ªÑΓ ¼«ñ¿Σ¿µ¿α«óáΓ∞
- ßó«¿ »áαá¼ÑΓαδ. è«úñá «íαáí«Γτ¿¬ »αÑαδóá¡¿⌐ ó«ºóαáΓ¿Γ π»αáó-
- ½Ñ¡¿Ñ, ¿º¼Ñ¡Ñ¡¿Ñ «»¿ßá¡¡δσ »áαá¼ÑΓα«ó »α¿óÑñÑΓ ¬ ¿º¼Ñ¡Ñ¡¿ε
- ß«ñÑন¼«ú« ß««ΓóÑΓßΓóπεΘ¿σ αÑú¿ßΓα«ó. ¥Γ« ¼«ªÑΓ «¬áºáΓ∞ß∩
- »«½Ñº¡δ¼, ¬«úñá óδ ¿ß»«½∞ºπÑΓÑ «íαáí«Γτ¿¬ »αÑαδóá¡¿⌐ ó ¬á-
- τÑßΓóÑ »«½∞º«óáΓѽ∞߬«ú« ßÑαó¿ß¡«ú« ßαÑñßΓóá, á¡á½«ú¿τ¡«ú«
- ó맮óπ Σπ¡¬µ¿¿ äÄæ »« ¿¡ßΓαπ¬µ¿¿ INÆ 21ì.
- é »α«µÑñπαáσ «íαáí«Γ¬¿ »αÑαδóá¡¿⌐, «íß½πª¿óáεΘ¿σ »αÑαδ-
- óá¡¿∩, »«½πτáѼδÑ «Γ á»»áαáΓ¡δσ ßσѼ, ß½ÑñπÑΓ ó«ºñÑনóáΓ∞ß∩
- «Γ ¿ß»«½∞º«óá¡¿∩ ¬á¬¿σ-½¿í« »α«úαá¼¼ óó«ñá-óδó«ñá Æπαí«-
- Åá߬á½∩ ¿½¿ »α«úαá¼¼ αáß»αÑñѽѡ¿∩ »á¼∩Γ¿, »«ß¬«½∞¬π «¡¿ ¡Ñ
- ∩ó½∩εΓß∩ αÑÑ¡ΓÑαáíѽ∞¡δ¼¿. êº-ºá ¿σ ¡ÑαÑÑ¡ΓÑαáíѽ∞¡«ßΓ¿
- ¡Ñ½∞º∩ Γá¬ªÑ ¿ß»«½∞º«óáΓ∞ ¡¿¬á¬¿Ñ Σπ¡¬µ¿¿ äÄæ.
-
- äαá⌐óÑαδ πßΓα«⌐ßΓó ñ½∩ ΓѬßΓ«óδσ Σá⌐½«ó
-
- èᬠπªÑ π»«¼¿¡á½«ß∞ ó â½áóÑ 10 ("éó«ñ ¿ óδó«ñ"), Æπα-
- í«-Åá߬á½∞ »«ºó«½∩ÑΓ óá¼ «»αÑñѽ¿Γ∞ óáΦ¿ ß«íßΓóÑ¡¡δÑ ñαá⌐óÑ-
- αδ πßΓα«⌐ßΓó ñ½∩ ΓѬßΓ«óδσ Σá⌐½«ó. äαá⌐óÑα πßΓα«⌐ßΓóá ñ½∩
- ΓѬßΓ«óδσ Σá⌐½«ó »αÑñßΓáó½∩ÑΓ ß«í«⌐ ¡áí«α ¿º τÑΓδαÑσ Σπ¡¬-
- µ¿⌐, »αÑñßΓáó½∩εΘ¿σ ß«í«⌐ »«½¡δ⌐ ¿¡ΓÑαΣÑ⌐ß ¼Ñªñπ Σá⌐½«ó«⌐
- ß¿ßΓѼ«⌐ Æπαí«-Åá߬á½∩ ¿ ¬á¬¿¼-½¿í« πßΓα«⌐ßΓó«¼. ¥Γ¿¼¿ τÑ-
- Γδα∞¼∩ Σπ¡¬µ¿∩¼¿, ß »«¼«Θ∞ε ¬«Γ«αδσ «»αÑñѽ∩ÑΓß∩ ½εí«⌐ ñαá⌐-
- óÑα πßΓα«⌐ßΓóá, ∩ó½∩εΓß∩ Σπ¡¬µ¿¿:
-
- Open, InOut, Flush, Close
-
- çáú«½«ó«¬ Σπ¡¬µ¿¿ ñ½∩ ¬áªñ«⌐ Σπ¡¬µ¿¿ ¿¼ÑÑΓ ß½ÑñπεΘ¿⌐
- ó¿ñ:
-
- function DeviceFunc(var F: TextRec) integer
-
- úñÑ ÆÑσtRÑß - Γ¿» ºá»¿ß¿ ΓѬßΓ«ó«ú« Σá⌐½á, ¬«Γ«αδ⌐ «»αÑñѽ∩-
- ÑΓß∩ ó »αÑñδñπΘѼ αáºñÑ½Ñ »«ñ ºáú½áó¿Ñ¼ "Æ¿»δ Σá⌐½«ó". ùΓ«íδ
- ó Σπ¡¬µ¿¿ ¿ß»«½∞º«óá½ß∩ ñá½∞¡¿⌐ Γ¿» ó맮óá, ¬áªñá∩ ¿º ¡¿σ
- ñ«½ª¡á ¬«¼»¿½¿α«óáΓ∞ß∩ ß ñ¿αÑ¬Γ¿ó«⌐ {$F+}. ç¡áτÑ¡¿Ñ, ó«ºóαá-
- ΘáѼ«Ñ ¬áªñ«⌐ Σπ¬¡µ¿Ñ⌐, »αÑñßΓáó½∩εΘÑ⌐ ß«í«⌐ ¿¡ΓÑαΣÑ⌐ß ß
- πßΓα«⌐ßΓó«¼, ßΓá¡«ó¿Γß∩ º¡áτÑ¡¿Ñ¼, ó«ºóαáΘáÑ¼δ¼ Σπ¡¬µ¿Ñ⌐
- IOResult. 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ 0 ßó¿ñÑΓѽ∞ßΓóπÑΓ «í πß»ÑΦ-
- ¡«¼ ºáóÑαΦÑ¡¿¿ «»Ñαᵿ¿.
-
- Åα¿¼Ñτá¡¿Ñ: ò«Γ∩ ÆÑσtRec ∩ó½∩ÑΓß∩ ó ßΓá¡ñáαΓ¡«¼ ¼«ñπ½Ñ
- Dos ó¡πΓαÑ¡¡Ñ⌐ ºá»¿ß∞ε, óδ ¼«ªÑΓÑ »ÑαÑ«»αÑñѽ¿Γ∞ ÑÑ
- (ᬬπαáΓ¡«!), ¬á¬ φΓ« íπñÑΓ ñѽáΓ∞ß∩ ñá½ÑÑ. ìáó᪡«,
- ¬á¬¿Ñ ¿¼Ñ¡á ¿ß»«½∞ºπεΓß∩ ñ½∩ Σπ¡¬µ¿⌐, «ßπΘÑßΓó½∩εΘ¿σ
- ¿¡ΓÑαΣÑ⌐ß ß πßΓα«⌐ßΓó«¼, ¡« »áαá¼ÑΓα ¬áªñ«⌐ Σπ¡¬µ¿¿
- ñ«½ªÑ¡ íδΓ∞ »áαá¼ÑΓα«¼-»ÑαѼѡ¡«⌐ ¿ ¿¼ÑΓ∞ Γ¿» ÆÑσtRec,
- á αѺπ½∞ΓáΓ Σπ¡¬µ¿¿ ñ«½ªÑ¡ íδΓ∞ µÑ½«ú« Γ¿»á.
-
- ä½∩ Γ«ú«, τΓ«íδ ßó∩ºáΓ∞ Σπ¡¬µ¿ε, «ßπΘÑßΓó½∩εΘπε ¿¡ΓÑα-
- ΣÑ⌐ß ß πßΓα«⌐ßΓó«¼, ß ¬«¡¬αÑΓ¡δ¼ Σá⌐½«¼, ¡πª¡« ¡á»¿ßáΓ∞ ß»Ñ-
- µ¿á½∞¡πε »α«µÑñπαπ Assign (á¡á½«ú¿τ¡πε »α«µÑñπαÑ AssignCrt ó
- ¼«ñπ½Ñ Crt). ¥Γá »α«µÑñπαá ñ«½ª¡á »α¿ßóá¿óáΓ∞ áñαÑßá τÑΓδαÑσ
- Σπ¡¬µ¿⌐, «ßπΘÑßΓó½∩εΘ¿σ ¿¡ΓÑαΣÑ⌐ß ß πßΓα«⌐ßΓóἿ, τÑΓδαѼ
- π¬áºáΓѽ∩¼ ¡á Σπ¡¬µ¿¿ ó »ÑαѼѡ¡«⌐ ΓѬßΓ«ó«ú« Σá⌐½á. é »α¿-
- ñáτπ ¬ φΓ«¼π óδ ñ«½ª¡δ ß«σαá¡¿Γ∞ ß¿ßΓѼ¡πε ¬«¡ßΓá¡Γπ
- fmClosed ó »«½Ñ î«dÑ, ºá»¿ßáΓ∞ αẼÑα íπΣÑαá ΓѬßΓ«ó«ú« Σá⌐-
- ½á ó »ÑαѼѡπε éufSize, ß«σαá¡¿Γ∞ π¬áºáΓѽ∞ íπΣÑαá ΓѬßΓ«ó«-
- ú« Σá⌐½á ó »ÑαѼѡ¡«⌐ BufPtr ¿ «τ¿ßΓ¿Γ∞ ßΓ᫬π Ná¼Ñ.
- ÅαÑñ»«½«ª¿¼, ¡á»α¿¼Ñα, τΓ« ¿¼Ñ¡á¼¿ τÑΓδαÑσ Σπ¡¬µ¿⌐, αÑ-
- ὿ºπεΘ¿σ ¿¡ΓÑαΣÑ⌐ß ß πßΓα«⌐ßΓó«¼, ∩ó½∩εΓß∩:
-
- DevOpen, DevInOut, DevFlush, DevClose, Assign
-
- Æ«úñá »α«µÑñπαá Assing ¼«ªÑΓ óδú½∩ñÑΓ∞ ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- procedure AssignDev(var F: Text);
- begin
- with TextRec(F) do
- begin
- mode := fmClosed;
- BufSize := SizeOf(Buffer);
- BufPtr := @Buffer;
- OpenFunc := @DevOpen;
- InOutFunc := @DevInOut;
- FlushFunc := @DevFlush;
- CloseFunc := @DevClose;
- Name[0] := #0;
- end;
- end;
-
- ä½∩ σαá¡Ñ¡¿∩ »«½∞º«óáΓѽ∞߬«⌐ ¿¡Σ«α¼áµ¿¿ ó Σπ¡¬µ¿¿,
- αÑ὿ºπεΘ¿Ñ ¿¡ΓÑαΣÑ⌐ß ß πßΓα«⌐ßΓó«¼, ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩
- »«½Ñ ºá»¿ß¿ UserData. ¥Γ« »«½Ñ ¡Ñ ¿º¼Ñ¡∩ÑΓß∩ Σá⌐½«ó«⌐ ß¿ßΓÑ-
- ¼«⌐ Æπαí«-Åá߬á½∩.
-
- öπ¡¬µ¿∩ ÄαÑn
-
- öπ¡¬µ¿∩ ÄαÑn óδºδóáÑΓß∩ ßΓá¡ñáαΓ¡δ¼¿ »α«µÑñπαἿ RÑset,
- RÑwritÑ ¿ AppÑnd ñ½∩ «Γ¬αδΓ¿∩ ΓѬßΓ«ó«ú« Σá⌐½á, ßó∩ºá¡¡«ú« ß
- πßΓα«⌐ßΓó«¼. ùΓ«íδ «Γ¼ÑΓ¿Γ∞ íδ½á ½¿ Σπ¡¬µ¿∩ ÄαÑn óδºóá¡á ¿º
- »α«µÑñπαδ RÑset, RÑwritÑ ¿½¿ AppÑnd, ¡á óσ«ñÑ »«½Ñ î«dÑ ß«-
- ñÑαª¿Γ º¡áτÑ¡¿Ñ fmInput, fmOutput ¿½¿ fmInOut.
- é ß««ΓóÑΓßΓó¿¿ ß« º¡áτÑ¡¿Ñ¼ î«dÑ Σπ¡¬µ¿∩ ÄαÑn »«ñú«Γáó-
- ½¿óáÑΓ Σá⌐½ ñ½∩ óó«ñá ¿½¿ óδó«ñá. àß½¿ ó î«dÑ π¬áºδóáÑΓß∩
- FmInOut (π¬áºδóá∩, τΓ« Σπ¡¬µ¿∩ ÄpÑn íδ½á óδºóá¡á ¿º ÇααÑnd),
- Γ« »ÑαÑñ ó«ºóαáΓ«¼ π»αáó½Ñ¡¿∩ Σπ¡¬µ¿Ñ⌐ ÄpÑn φΓ« º¡áτÑ¡¿Ñ
- ñ«½ª¡« íδΓ∞ ¿º¼Ñ¡Ñ¡« ¡á fmOutput.
- öπ¡¬µ¿∩ OpÑn óßÑúñá óδºδóáÑΓß∩ »ÑαÑñ ½εí«⌐ ñαπú«⌐ Σπ¡¬-
- µ¿Ñ⌐, αÑ὿ºπεΘÑ⌐ ¿¡ΓÑαΣÑ⌐ß ß πßΓα«⌐ßΓó«¼. Å« φΓ«⌐ »α¿τ¿¡Ñ
- Σπ¡¬µ¿∩ Çssign ¿¡¿µ¿á½¿º¿απÑΓ Γ«½∞¬« »«½Ñ ÄpÑnFunc, «Γ¬½áñδ-
- óá∩ ¿¡¿µ¿á½¿ºáµ¿ε «ßΓáóΦ¿σß∩ óÑ¬Γ«α«ó ñ« ºáóÑαΦÑ¡¿∩ óδ»«½¡Ñ-
- ¡¿∩ Σπ¡¬µ¿¿ ÄpÑn. Äß¡«óδóá∩ß∞ ¡á º¡áτÑ¡¿¿ »«½∩ î«dÑ Σπ¡¬µ¿∩
- ÄpÑn ¼«ªÑΓ πßΓá¡«ó¿Γ∞ π¬áºáΓѽ¿ ¬á¬ ñ½∩ Σπ¬¡µ¿⌐, «α¿Ñ¡Γ¿α«-
- óá¡¡δσ ¡á óó«ñ, Γᬠ¿ ñ½∩ Σπ¡¬µ¿⌐, «α¿Ñ¡Γ¿α«óá¡¡δσ ¡á óδó«ñ.
- ¥Γ« »«ºó«½∩ÑΓ ¿ºíѪáΓ∞ «»αÑñѽѡ¿∩ ΓѬπΘÑú« αѪ¿¼á ó Σπ¡¬-
- µ¿∩σ InOut, Flush ¿ Close.
-
- öπ¡¬µ¿∩ InOut
-
- éß∩¬¿⌐ αáº, ¬«úñá ΓαÑíπÑΓß∩ óó«ñ ß πßΓα«⌐ßΓóá ¿½¿ óδó«ñ
- ¡á ¡Ñú«, Σπ¡¬µ¿∩¼¿ Readln, Read, Write, Writeln, Page, Eof,
- SeekEof, SeekEoln ¿ Close óδºδóáÑΓß∩ Σπ¡¬µ¿∩ InOut.
- è«úñá ó »«½Ñ î«dÑ πßΓá¡«ó½Ñ¡« º¡áτÑ¡¿Ñ fnInput, Σπ¡¬µ¿∩
- InOut ßτ¿ΓδóáÑΓ ß¿¼ó«½δ («íΩѼ óó«ñá ºáñáÑΓß∩ »ÑαѼѡ¡«⌐
- BufSize) ó BufPtr^ ¿ ó«ºóαáΘáÑΓ τ¿ß½« ßτ¿Γá¡¡δσ ß¿¼ó«½«ó ó
- BufEnd, á Γá¬ªÑ ºá»¿ßδóáÑΓ 0 ó éufÉ«z. àß½¿ Σπ¡¬µ¿∩ InOut ó
- αѺπ½∞ΓáΓÑ ºá»α«ßá ¡á óó«ñ ó«ºóαáΘáÑΓ ó éufànd º¡áτÑ¡¿Ñ 0,
- Γ« »ÑαѼѡ¡á∩ à«f ñ½∩ Σá⌐½á »α¿¡¿¼áÑΓ º¡áτÑ¡¿Ñ ÆruÑ.
- è«úñá ó »«½Ñ î«dÑ πßΓá¡«ó½Ñ¡« º¡áτÑ¡¿Ñ fnOutput, Σπ¡¬-
- µ¿∩ InOut ºá»¿ßδóáÑΓ ß¿¼ó«½δ, ¬«½¿τÑßΓó« ¬«Γ«αδσ «»αÑñѽ∩ÑΓ-
- ß∩ »ÑαѼѡ¡«⌐ éufÉ«s, ¿º éufPtr^ ¿ ó«ºóαáΘáÑΓ ó éufÉ«s º¡á-
- τÑ¡¿Ñ 0.
- öπ¡¬µ¿∩ Flush
-
- öπ¡¬µ¿∩ Flush óδºδóáÑΓß∩ ó ¬«¡µÑ óδ»«½¡Ñ¡¿∩ ¬áªñ«⌐
- Σπ¡¬µ¿¿ RÑád, Write, RÑádln ¿½¿ Writeln. Ä¡á ¼«ªÑΓ ΓᬪÑ
- ßíαáßδóáΓ∞ íπΣÑα ΓѬßΓ«ó«ú« Σá⌐½á. àß½¿ ó »«½Ñ î«dÑ ¡áσ«ñ¿Γ-
- ß∩ fmInput, Σπ¡¬µ¿∩ Flush ñ½∩ Γ«ú«, τΓ«íδ «Γíα«ß¿Γ∞ «ßΓáóΦ¿-
- Ñß∩ (¡Ñßτ¿Γá¡¡δÑ) ß¿¼ó«½δ ó íπΣÑαÑ, ¼«ªÑΓ ºá»¿ßáΓ∞ 0 ó
- BufPos ¿ BufEnd. ¥Γ« ßαÑñßΓó« ¿ß»«½∞ºπÑΓß∩ αÑñ¬«.
- àß½¿ ó »«½Ñ î«dÑ ¡áσ«ñ¿Γß∩ fnOutput, Γ« Σπ¡¬µ¿∩ Flush
- ¼«ªÑΓ ºá»¿ßáΓ∞ ß«ñÑন¼«Ñ íπΣÑαá, ó Γ«τ¡«ßΓ¿ Γᬿ¼ ªÑ «íαá-
- º«¼, ¬á¬ Σπ¡¬µ¿∩ InOut. ¥Γ« úáαá¡Γ¿απÑΓ, τΓ« óδóÑñÑ¡¡δ⌐ ¡á
- πßΓα«⌐ßΓ« ΓѬßΓ »«∩ó¿Γß∩ ¡á πßΓα«⌐ßΓóÑ ¡Ñ¼Ññ½Ñ¡¡«. àß½¿
- Σπ¡¬µ¿∩ Flush ¡Ñ óδ»«½¡∩ÑΓ ¡¿¬á¬¿σ ñÑ⌐ßΓó¿⌐, ΓѬßΓ ¡Ñ íπñÑΓ
- óδóÑñÑ¡ ¡á πßΓα«⌐ßΓó«, »«¬á íπΣÑα ¡Ñ ßΓá¡ÑΓ »«½¡δ¼ ¿½¿ Σá⌐½
- ¡Ñ íπñÑΓ ºá¬αδΓ.
-
- öπ¡¬µ¿∩ æl«sÑ
-
- öπ¡¬µ¿∩ æl«sÑ óδºδóáÑΓß∩ ßΓá¡ñáαΓ¡«⌐ »α«µÑñπα«⌐ æl«sÑ
- ñ½∩ ºá¬αδΓ¿∩ ßó∩ºá¡¡«ú« ß πßΓα«⌐ßΓó«¼ ΓѬßΓ«ó«ú« Σá⌐½á.
- (Åα«µÑñπαδ RÑsÑt, RÑwritÑ, AppÑnd Γá¬ªÑ óδºδóáεΓ Σπ¡¬µ¿ε
- æl«sÑ, Ñß½¿ Σá⌐½, ¬«Γ«αδ⌐ «¡¿ «Γ¬αδóáεΓ, πªÑ íδ½ «Γ¬αδΓ.)
- àß½¿ ó »«½Ñ î«dÑ ¡áσ«ñ¿Γß∩ fmOut, Γ« »ÑαÑñ óδº«ó«¼ Σπ¡¬µ¿¿
- æl«sÑ Σá⌐½«óá∩ ß¿ßΓÑ¼á Æπαí«-Åá߬á½∩ «íαáΘáÑΓß∩ ¬ Σπ¡¬µ¿¿
- InOut. ¥Γ« úáαá¡Γ¿απÑΓ óδó«ñ ¡á πßΓα«⌐ßΓó« óßÑσ ß¿¼ó«½«ó.
-
- Åα¿¼Ñαδ ñαá⌐óÑα«ó πßΓα«⌐ßΓó ñ½∩ ΓѬßΓ«óδσ Σá⌐½«ó
-
- Åα¿óÑñÑ¡¡δ⌐ ñá½ÑÑ ¼«ñπ½∞ »αÑñßΓáó½∩ÑΓ ß«í«⌐ ñαá⌐óÑα
- ¬«¼¼π¡¿¬áµ¿«¡¡δσ »«αΓ«ó (»«ß½Ññ«óáΓѽ∞¡δσ »«αΓ«ó) ¬«¼»∞εΓÑαá
- IMB PC ñ½∩ ΓѬßΓ«ó«ú« Σá⌐½á:
-
- unit AuxInOut;
-
- interface
- uses Dos;
-
- procedure AssignAux(var F: Text; Port, Params: word);
-
- implementation
-
- {$K-,R-}
-
- const
- fmClose := $D7B0;
- fmInput := $D7B1;
- fmOutput := $D7B2;
- fmInOut := $D7B3;
-
- type
- CharBuf = atrray[0..127] of char;
-
- procedure AuxInit(Port, Params : word);
- inline(
- $58/ { POP AX ; ¿ºó½Ñτ∞ ¿º ßΓÑ¬á »áαá¼ÑΓαδ }
- $5A/ { POP DX ; ¿ºó½Ñτ∞ ¿º ßΓÑ¬á ¡«¼Ñα »«αΓá }
- $B4/$00/ { MOV AH,0 ; ¿¡ßΓαπ¬µ¿∩ ¿¡¿µ¿á½¿ºáµ¿¿ }
- $CD/$14); { INT 14H ; «íαáΘÑ¡¿Ñ ¬ íẫó«⌐ ß¿ßΓѼÑ
- ; óó«ñá-óδó«ñá }
- function AuxInchar(Port: word): char;
- inline(
- $5A/ { POP AX ; ¿ºó½Ñτ∞ ¿º ßΓÑ¬á ¡«¼Ñα »«αΓá }
- $B4/$02/ { MOV AH,2 ; ¿¡ßΓαπ¬µ¿∩ óó«ñá }
- $CD/$14/); { INT 14H ; «íαáΘÑ¡¿Ñ ¬ íẫó«⌐ ß¿ßΓѼÑ
- ; óó«ñá-óδó«ñá }
- procedure AuxOutchar(Port: word; Ch: char);
- inline(
- $58/ { POP AX ; ¿ºó½Ñτ∞ ¿º ßΓѬá ß¿¼ó«½ }
- $5A/ { POP DX ; ¿ºó½Ñτ∞ ¿º ßΓÑ¬á ¡«¼Ñα »«αΓá }
- $B4/$01 { MOV AH,1 ; ¿¡ßΓαπ¬µ¿∩ ñ½∩ óδó«ñá }
- $CD/$14); { INT 14H ; «íαáΘÑ¡¿Ñ ¬ íẫó«⌐ ß¿ßΓѼÑ
- ; óó«ñá-óδó«ñá }
- function AuxInReady(Port: word) : boolean;
- inline(
- $5A/ { POP DX ; ¿ºó½Ñτ∞ ¿º ßΓÑ¬á ¡«¼Ñα »«αΓá }
- $B4/$03/ { MOV AH,3 ; ß«ßΓ«∩¡¿Ñ }
-
- $CD/$14/ { INT 14H ; «íαáΘÑ¡¿Ñ ¬ íẫó«⌐ ß¿ßΓѼÑ
- ; óó«ñá-óδó«ñá }
- $88/$E0/ { MOV AL,AH ; »«½πτ¿Γ∞ ó Aì ß«ßΓ«∩¡¿Ñ
- ; ßΓ᫬¿ }
- $24/$01); { AND AL,1 ; óδñѽ¿Γ∞ í¿Γ ú«Γ«ó¡«ßΓ¿
- ; ñá¡¡δσ }
-
- {$F+}
-
- function AuxInput(var F : TextRec) : integer;
- var
- P : integer;
- begin
- with F do
- begin
- P := 0;
- while AuxInReady(AuxPort) and (P<BufSize) do
- begin
- BufPtr^[P]:=AuxInChar(AuxPort); Inc(P);
- end;
- BufPos := 0; BufEnd := P;
- end;
-
- function AuxOutput(var F: TextRec): integer;
- var
- P: integer;
- begin
- with F do
- begin
- for P := 0 to BufPos-1 do AuxOutChar(AuxPort,BufPtr^[P]);
- BufPos := 0;
- end;
- AuxOutput := 0;
- end;
-
- function AuxIgnore(var F: TextRec) : integer;
- begin
- AuxIgnore := 0;
- end;
-
- function AuxOpen(var F: TextRec) : integer;
- begin
- with F do
- begin
- AuxInit(AuxPort,AuxPaaram);
- if Mode = fmInput then
- begin
- InOutFunc := @AuxInput;
- FlushFunc := @AuxIgnore;
- end else
- begin
- Mode := fmOutput;
- InOutFunc := @AuxOutput;
- FlushFunc := @AuxOutput;
- end;
- CloseFunc := @AuxIgnore;
- end;
- AuxOpen := 0;
- end;
-
- {$F-}
-
- procedure AssignAux;
- begin
- with TextRec(F) do
- begin
- Handle := $FFFF;
- Mode := fmClosed;
- BufSize := SizeOf(Buffer);
- BufPtr := @Buffer;
- Openfunc := @AuxOpen;
- AuxPort := Port;
- AuxParam := Param;
- Name[0] := #0;
- end;
- end;
-
- end.
-
- Æ¿» »ÑαѼѡ¡«⌐ ÆÑσtRÑß, «»αÑñѽ∩Ѽ«⌐ ó ¼«ñπ½Ñ AuxInOut,
- ¡Ñ ß«ó»áñáÑΓ Γ«τ¡« ß Γ¿»«¼ ¿ßσ«ñ¡«⌐ »ÑαѼѡ¡«⌐ ÆÑσtRÑß.
- é¼ÑßΓ« 16-íá⌐Γ«ó«ú« »«½∩ UserData «¡á ß«ñÑαª¿Γ ñóá »«½∩ ñ½¿-
- ¡«⌐ ó ß½«ó«, ó ¬«Γ«αδσ ºá»«¼¿¡áεΓß∩ ¡«¼Ñα ¬«¼¼π¡¿¬áµ¿«¡¡«ú«
- »«αΓá ¿ íá⌐Γ »áαá¼ÑΓαá. çá φΓ¿¼¿ ñóπ¼∩ »«½∩¼¿ ß½ÑñπÑΓ 12 ¡Ñ-
- ¿ß»«½∞ºπѼδσ íá⌐Γ«ó (τΓ«íδ «íΘÑÑ ¬«½¿τÑßΓó« íá⌐Γ«ó αáó¡∩½«ß∞
- 16). Åα«µÑñπαá AuxInit ¿¡¿µ¿á½¿º¿απÑΓ π¬áºá¡¡δ⌐ ¬«¼¼π¡¿¬áµ¿-
- «¡¡δ⌐ »«αΓ ó ß««ΓóÑΓßΓó¿¿ ß ºáñá¡¡δ¼ íá⌐Γ«¼ »áαá¼ÑΓαá. öπ¡¬-
- µ¿∩ AuxInChar ßτ¿ΓδóáÑΓ ß¿¼ó«½ ¿º ºáñá¡¡«ú« »«αΓá. Åα«µÑñπαá
- AuxOutChar óδó«ñ¿Γ ß¿¼ó«½ ó ºáñá¡¡δ⌐ »«αΓ. öπ¡¬µ¿∩
- AuxInReady ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ ÆruÑ ó Γ«¼ ß½πτáÑ, Ñß½¿ ß¿¼-
- ó«½ ú«Γ«ó ñ½∩ ßτ¿Γδóá¡¿∩ ¿º ºáñá¡¡«ú« »«αΓá. ÄíαáΓ¿ΓÑ ó¡¿¼á-
- ¡¿Ñ ¡á ¿ß»«½∞º«óá¡¿Ñ ñ½∩ αÑ὿ºáµ¿¿ φΓ¿σ »α«µÑñπα ¿ Σπ¡¬µ¿⌐
- ó¡πΓαÑ¡¡¿σ ñ¿αÑ¬Γ¿ó. äá½∞¡Ñ⌐Φ¿Ñ »«ñα«í¡«ßΓ¿ »« ¿ß»«½∞º«óá¡¿ε
- ¬«¼¼π¡¿¬áµ¿«¡¡δσ »«αΓ«ó «»¿ßá¡δ ó "ÆÑσ¡¿τÑ߬«¼ ß»αáó«τ¡«¼
- απ¬«ó«ñßΓóÑ »« ¬«¼»∞εΓÑαπ IBM Éæ".
- ä½∩ «íαáΘÑ¡¿∩ ó ºáñá¡¡«¼π ¬«¼¼π¡¿¬áµ¿«¡¡«¼π »«αΓπ ß «»-
- αÑñѽѡ¡δ¼ íá⌐Γ«¼ »áαá¼ÑΓαá »α«µÑñπαá AssignAux ¿¡¿µ¿á½¿º¿-
- απÑΓ ºáñá¡¡πε »ÑαѼѡ¡πε ΓѬßΓ«ó«ú« Σá⌐½á. 쫼Ñαá »«αΓ«ó 0 ¿
- 1 ß««ΓóÑΓßΓóπεΓ »«αΓá¼ æÄî1 ¿ æÄî2. üá⌐Γ »áαá¼ÑΓαá «»¿ßδóá-
- ÑΓß∩ ó "ÆÑσ¡¿τÑ߬«¼ ß»αáó«τ¡«¼ απ¬«ó«ñßΓóÑ »« ¬«¼»∞εΓÑαπ
- IBM PC".
- AuxLocn ¿¡¿µ¿á½¿º¿απÑΓ óδíαá¡¡δ⌐ ¬«¼¼π¡¿¬áµ¿«¡¡δ⌐ »«αΓ
- ¿ πßΓá¡áó½¿óáÑΓ π¬áºáΓѽ¿ Σπ¡¬µ¿¿ ó ß««ΓóÑΓßΓó¿¿ ß »«½Ñ¼
- î«dÑ. ÄΓ¼ÑΓ¿¼, τΓ« »α¿ óδó«ñÑ FlushFunc πßΓá¡áó½¿óáÑΓß∩ ¡á
- ëà ªÑ áñαÑß, τΓ« ¿ InOutFunc, τΓ« óδºδóáÑΓ «τ¿ßΓ¬π íπΣÑαá
- ΓѬßΓ«ó«ú« Σá⌐½á »«ß½Ñ ¬áªñ«⌐ «»Ñαᵿ¿ Write ¿½¿ Writeln.
- AuxInput óó«ñ¿Γ ß¿¼ó«½δ («íΩѼ óó«ñá ºáñáÑΓß∩ »ÑαѼѡ-
- ¡«⌐ BufSize) ¿º óδíαá¡¡«ú« »«αΓá, á AuxOutput óδó«ñ¿Γ ß«ñÑα-
- ª¿¼«Ñ íπΣÑαá ó ºáñá¡¡δ⌐ »«αΓ.
- öπ¡¬µ¿∩ AuxIgnore ¿ß»«½∞ºπÑΓß∩ ó ΓÑσ ß½πτá∩σ, ¬«úñá ¡Ñ
- ΓαÑíπÑΓß∩ ߻ѵ¿á½∞¡δσ ñÑ⌐ßΓó¿⌐, ¬á¬, ¡á»α¿¼Ñα, ñ½∩ Σπ¡¬µ¿⌐
- ælosÑ ¿ Flush (ó αѪ¿¼Ñ óó«ñá).
- Åα¿óÑñÑ¡¡á∩ ñá½ÑÑ ¬«α«Γ¬á∩ »α«úαá¼¼á ¿ß»«½∞ºπÑΓ ¼«ñπ½∞
- AuxInOut ñ½∩ ºá»¿ß¿ ßΓ᫬¿ ó «ñ¿¡ ¿º ¬«¼¼π¡¿¬áµ¿«¡¡δσ »«α-
- Γ«ó. æ »«¼«Θ∞ε »α«µÑñπαδ AssingAUx Σá⌐½ 櫼1 ßó∩ºδóáÑΓß∩ ß
- »«αΓ«¼ æÄî1. Åα¿ φΓ«¼ ¿ß»«½∞ºπÑΓß∩ ߬«α«ßΓ∞ »ÑαÑñáτ¿ 1200
- í«ñ, 1 ßΓ«»-í¿Γ, 8 í¿Γ«ó ñá¡¡δσ ¿ «ΓßπΓßΓó¿Ñ »α«óÑન »áα¿-
- ΓÑΓá.
-
- program TestAux;
- uses AuxInOut;
- var
- Com1 : Text;
- begin
- AssignAux(Co1,0,$83);
- Rewrite(Com1);
- Writeln(Com1,'evice drivers are fun!');
- Close(Com1);
- end;
-
- Åα«µÑñπαδ óδσ«ñá
-
- é »«¼«Θ∞ε »α«µÑñπα óδσ«ñá óδ ¼«ªÑΓÑ π»αáó½∩Γ∞ »α«µÑßß«¼
- ºáóÑαΦÑ¡¿∩ αáí«Γδ »α«úαá¼¼δ. ¥Γ« »«½Ñº¡« ó Γ«¼ ß½πτáÑ, ¬«úñá
- óδ σ«Γ¿ΓÑ »ÑαÑñ »αѬαáΘÑ¡¿Ñ¼ αáí«Γδ »α«úαá¼¼δ «íÑß»Ñτ¿Γ∞ óδ-
- »«½¡Ñ¡¿Ñ «»αÑñѽѡ¡δσ ñÑ⌐ßΓó¿⌐ (Γ¿»¿τ¡δ¼ »α¿¼Ñα«¼ ∩ó½∩ÑΓß∩
- «í¡«ó½Ñ¡¿Ñ ¿ ºá¬αδΓ¿Ñ Σá⌐½«ó).
- ÉÑ὿º«óáΓ∞ »α«µÑñπαπ óδσ«ñá óá¼ »«ºó«½∩ÑΓ »ÑαѼѡ-
- ¡á∩-π¬áºáΓѽ∞ àσitProc. Åα«µÑñπαá óδσ«ñá óßÑúñá »«½πτáÑΓ óδ-
- º«ó »α¿ ºáóÑαΦÑ¡¿¿ αáí«Γδ »α«úαá¼¼δ, ¡Ñºáó¿ß¿¼« «Γ Γ«ú«, ∩ó-
- ½∩ÑΓß∩ ½¿ φΓ« ºáóÑαΦÑ¡¿Ñ ¡«α¼á½∞¡δ¼ «¬«¡τ᡿Ѽ αáí«Γδ »α«ú-
- αá¼¼δ, ºáóÑαΦÑ¡¿Ñ¼ »«ß½Ñ «íαáΘÑ¡¿∩ ¬ Σπ¡¬µ¿¿ ìált, ¿½¿ αáí«-
- Γá »α«úαá¼¼δ »αѬαáΓ¿½áß∞ ¿º-ºá «Φ¿í¬¿ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩.
- Åáαá¼ÑΓαδ ñ½∩ »α«µÑñπαδ óδσ«ñá ¡Ñ ΓαÑíπεΓß∩ ¿ ñ½∩ Γ«ú«,
- τΓ«íδ ¿ß»«½∞º«óá½ß∩ ñá½∞¡¿⌐ Γ¿» ó맮óá, «¡á ñ«½ª¡á ¬«¼»¿½¿-
- α«óáΓ∞ß∩ ß π¬áºá¡¿Ñ¼ ñ¿αÑ¬Γ¿óδ ¬«¼»¿½∩Γ«αá {$F+}.
- è«úñá »α«µÑñπαá óδσ«ñá ñ«½ª¡δ¼ «íαẫ¼ αÑ὿º«óá¡á, «¡á
- ó ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ ßΓá¡«ó¿Γß∩ τáßΓ∞ε µÑ»«τ¬¿ »α«µÑñπα óδσ«-
- ñá. ¥Γá µÑ»«τ¬á »«ºó«½∩ÑΓ αÑ὿º«óáΓ∞ »α«µÑñπαδ óδσ«ñá ¬á¬
- ñ½∩ ¼«ñπ½Ñ⌐, Γᬠ¿ ñ½∩ »α«úαá¼¼. é ¡Ñ¬«Γ«αδσ ¼«ñπ½∩σ »α«µÑ-
- ñπαá óδσ«ñá αÑ὿ºπÑΓß∩, ¬á¬ τáßΓ∞ ßἫú« ¼«ñπ½∩, á óδ»«½¡Ñ-
- ¡¿Ñ ¡Ñ¬«Γ«αδσ ºáóÑαΦáεΘ¿σ ñÑ⌐ßΓó¿⌐ »«ß½Ñ óδσ«ñá ¿º ¼«ñπ½∩,
- ¡á»α¿¼Ñα, ºá¬αδΓ¿Ñ Σá⌐½«ó ¿½¿ ó«ßßΓá¡«ó½Ñ¡¿Ñ óÑ¬Γ«α«ó »αÑαδ-
- óá¡¿⌐, 󫺽áúáÑΓß∩ ¡á ¬«¡¬αÑΓ¡πε »α«µÑñπαπ. Åα«µÑñπαδ ó µÑ-
- »«τ¬Ñ óδσ«ñá óδ»«½¡∩εΓß∩ ó »«ß½Ññ«óáΓѽ∞¡«ßΓ¿, «íαáΓ¡«⌐ »«-
- α∩ñ¬π ¿σ αÑ὿ºáµ¿¿. ¥Γ¿¼ «íÑß»Ñτ¿óáÑΓß∩, τΓ« «»ÑαáΓ«αδ óδ-
- σ«ñá «ñ¡«ú« í½«¬á ¡Ñ óδ»«½¡∩εΓß∩, »«¬á ¡Ñ íπñπΓ óδ»«½¡Ñ¡δ
- «»ÑαáΓ«αδ óδσ«ñá ¬á¬«ú«-½¿í« ºáó¿ß∩ΘÑú« «Γ ¡Ñú« ¼«ñπ½∩.
- ùΓ«íδ ß«σαá¡¿Γ∞ µÑ»«τ¬π óδσ«ñá ó ¡Ñ»α¿¬«ß¡«óÑ¡¡«ßΓ¿, óδ
- ñ«½ª¡δ »ÑαÑñ ¿º¼Ñ¡Ñ¡¿Ñ¼ π¬áºáΓѽ∩ àσitPr«ß ¡á áñαÑß óáΦÑ⌐
- ß«íßΓóÑ¡¡«⌐ »α«µÑñπαδ ß«σαá¡¿Γ∞ ΓѬπΘÑÑ ß«ñÑন¼«Ñ φΓ«ú«
- π¬áºáΓѽ∩. äá½ÑÑ, ¡Ñ»«ßαÑñßΓóÑ¡¡« »ÑαÑñ ó«ºóαáΓ«¼ π»αáó½Ñ¡¿∩
- óáΦá »α«µÑñπαá óδσ«ñá ñ«½ª¡á ñ«½ª¡á ó«ßßΓá¡«ó¿Γ∞ ß«σαá¡Ñ¡¡«Ñ
- º¡áτÑ¡¿Ñ àσitProc. é ß½ÑñπεΘÑ⌐ »α«úαá¼¼Ñ »«¬áºá¡δ «ß¡«óδ ¼Ñ-
- Γ«ñá αÑ὿ºáµ¿¿ Γᬫ⌐ »α«µÑñπαδ óδσ«ñá.
-
- program Testexit;
- var
- ExitSave: pointer;
-
- {$F+} procedure MyExit ; {$F-}
- begin
- .
- .
- .
- ExitProc := ExitSave;
- ExitProc := MyExit;
- .
- .
- .
- end.
-
- Åα¿ óσ«ñÑ ó »α«úαá¼¼π ß«ñÑন¼«Ñ àσitProc ß«σαá¡∩ÑΓß∩ ß
- àσitSave, á ºáΓѼ ß½ÑñπÑΓ »α«µÑñπαá óδσ«ñá îπàσit. ū߽Ñ
- Γ«ú«, ¬á¬ «¡á íπñÑΓ óδºóá¡á ó ¬áτÑßΓóÑ φ½Ñ¼Ñ¡Γá »α«µÑßßá ºá-
- óÑαΦÑ¡¿∩ αáí«Γδ »α«úαá¼¼δ, »α«µÑñπαá îπàσit ó«ßßΓá¡«ó¿Γ »αÑ-
- ñδñπΘπε »α«µÑñπαπ óδσ«ñá.
- Åα«úαá¼¼á ºáóÑαΦÑ¡¿∩ ó í¿í½¿«ΓÑ¬Ñ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓѼδ
- íπñÑΓ óδºδóáΓ∞ »α«µÑñπαδ óδσ«ñá, »«¬á π¬áºáΓѽ∞ àσitPr«ß ¡Ñ
- »α¿¼ÑΓ º¡áτÑ¡¿Ñ nil. é« ¿ºíѪ᡿¿ ºáµ¿¬½¿óá¡¿∩ àσitPr«ß πß-
- Γá¡áó½¿óáÑΓß∩ ó nil »ÑαÑñ ¬áªñδ¼ «íαáΘÑ¡¿Ñ¼, ΓᬠτΓ« ß½Ññπε-
- Θá∩ »α«µÑñπαá óδσ«ñá óδºδóáÑΓß∩ Γ«½∞¬« ó Γ«¼ ß½πτáÑ, Ñß½¿
- ΓѬπΘá∩ »α«µÑñπαá óδσ«ñá πßΓá¡áó½¿óáÑΓ ñ½∩ àσitPr«ß ÑÑ áñ-
- αÑß. àß½¿ »α¿ óδ»«½¡Ñ¡¿¿ »α«µÑñπαδ óδσ«ñá 󫺡¿¬áÑΓ «Φ¿í¬á,
- Γ« ó ¡Ñ⌐ ¡Ñ πß»ÑÑΓ ÑΘÑ óδ»«½¡¿Γ∞ß∩ »α¿ßóá¿óá¡¿Ñ ¡«ó«ú« áñαÑ-
- ßá π¬áºáΓѽε àσitPr«ß, Γᬠ¬á¬ φΓ« ñѽáÑΓß∩ ¡Ñ»«ßαÑñßΓóÑ¡¡«
- »ÑαÑñ ΓѼ, ¬á¬ »α«µÑñπαá óδσ«ñá óδ»«½¡¿Γ ó«ºóαáΓ π»αáó½Ñ¡¿∩.
- Åα«µÑñπαá óδσ«ñá ¼«ªÑΓ αáß»«º¡áóáΓ∞ »α¿τ¿¡π ºáóÑαΦÑ¡¿∩
- αáí«Γδ »α«úαá¼¼δ »πΓѼ »α«óÑન µÑ½«τ¿ß½Ñ¡¡«⌐ »ÑαѼѡ¡«⌐
- àσitCode ¿ »ÑαѼѡ¡«⌐-π¬áºáΓѽ∩ ErrorAddr. é ß½πτáÑ ¡«α-
- ¼á½∞¡«ú« ºáóÑαΦÑ¡¿∩ ó àσitCode ß«ñÑনΓß∩ ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ ¿
- ErrorAddr ¿¼ÑÑΓ º¡áτÑ¡¿Ñ nil. é ß½πτáÑΓ ºáóÑαΦÑ¡¿∩ τÑαѺ «í-
- αáΘÑ¡¿Ñ ¬ »α«µÑñπαÑ ìált àσitCode ß«ñÑαª¿Γ º¡áτÑ¡¿Ñ, »ÑαÑ-
- ñá¡¡«Ñ Σπ¡¬µ¿¿ ìált, á ErrorAddr ¿¼ÑÑΓ º¡áτÑ¡¿Ñ nil. ìᬫ-
- ¡Ñµ, ó ß½πτáÑ »αѬαáΘÑ¡¿∩ αáí«Γδ »α«úαá¼¼δ ¿º-ºá «Θ¿í¬¿ ó«
- óαѼ∩ ÑÑ óδ»«½¡Ñ¡¿∩ àσitCode ß«ñÑαª¿Γ ¬«ñ «Φ¿í¬¿, á
- ErrorAddr ß«ñÑαª¿Γ áñαÑß «Φ¿í«τ¡«ú« «»ÑαáΓ«αá.
- ū߽Ññ¡∩∩ »α«µÑñπαá óδσ«ñá (¬«Γ«αá∩ ß«ñÑনΓß∩ ó í¿í½¿-
- «ΓÑ¬Ñ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓѼδ) ºá¬αδóáÑΓ Σá⌐½δ Input ¿ Output ¿
- ó«ßßΓá¡áó½¿óáÑΓ óÑ¬Γ«αδ »αÑαδóá¡¿⌐, ¬«Γ«αδÑ í뫨 »ÑαÑσóáτÑ¡δ
- Æπαí«-Åá߬á½Ñ¼. Åα¿ φΓ«¼, Ñß½¿ π¬áºáΓѽ∞ ErrorAddr ¿¼ÑÑΓ
- º¡áτÑ¡¿Ñ, «Γ½¿τ¡«Ñ «Γ nil, Γ« »α«µÑñπαá óδσ«ñá óδó«ñ¿Γ ß««í-
- ΘÑ¡¿Ñ «í «Φ¿í¬Ñ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ. àß½¿ óδ σ«Γ¿-
- ΓÑ óδó«ñ¿Γ∞ ßó«¿ ß«íßΓóÑ¡¡δÑ ß««íΘÑ¡¿∩ «í «Φ¿í¬áσ ó« óαѼ∩
- óδ»«½¡Ñ¡¿∩, ¿ß»«½∞ºπ⌐ΓÑ »α«µÑñπαπ óδσ«ñá, ¬«Γ«αá∩ »α«óÑα∩ÑΓ
- ErrorAddr ¿ óδó«ñ¿Γ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ, Ñß½¿ Ñú« º¡áτÑ¡¿Ñ
- «Γ½¿τ¡« «Γ nil. é ñ«íáó«¬ ó φΓ«¼π »ÑαÑñ ó«ºóαáΓ«¼ π»αáó½Ñ¡¿∩
- ¡Ñ«íσ«ñ¿¼« «íÑß»Ñτ¿Γ∞, τΓ«íδ π¬áºáΓѽ∞ ErrorAddr íδ½ πßΓá-
- ¡«ó½Ñ¡ ó º¡áτÑ¡¿Ñ nil, τΓ«íδ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ ¡Ñ óδñáóá-
- ½«ß∞ ß¡«óá ñαπú«⌐ »α«µÑñπα«⌐ óδσ«ñá.
- Å«ß½Ñ Γ«ú«, ¬á¬ í¿í½¿«ΓÑ¬á ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ «íαáΘá-
- ÑΓß∩ ó »α«µÑñπαá¼ óδσ«ñá, «¡á ó«ºóαáΘáÑΓ π»αáó½Ñ¡¿Ñ äÄæ ¿
- »ÑαÑñáÑΓ ó ¬áτÑßΓóÑ ¬«ñá ó«ºóαáΓá º¡áτÑ¡¿Ñ, ß«ñÑαªáΘÑÑß∩ ó
- àσitCode.
-
- ÇóΓ«¼áΓ¿τÑ߬á∩ «»Γ¿¼¿ºáµ¿∩
-
- é Æπαí«-Åá߬á½Ñ óδ»«½¡∩ÑΓß∩ ¡Ñ߬«½∞¬« αẽ¿τ¡δσ Γ¿»«ó
- «»Γ¿¼¿ºáµ¿¿ ¬«ñá, ¡áτ¿¡á∩ «Γ ßóÑαΓδóá¡¿∩ ¬«¡ßΓá¡Γ ¿ óδτ¿ß½Ñ-
- ¡¿∩ íπ½Ñó߬¿σ óδαáªÑ¡¿⌐ »« ¬«α«Γ¬«⌐ ßσÑ¼Ñ ¿ ¬«¡τá∩ φΣΣÑ¬Γ¿ó-
- ¡δ¼ αÑñá¬Γ¿α«ó᡿Ѽ ßó∩ºÑ⌐. Éáßß¼«Γα¿¼ ¡Ñ¬«Γ«αδÑ ó¿ñδ «»Γ¿-
- ¼¿ºáµ¿¿.
-
- æóÑαΓδóá¡¿Ñ ¬«¡ßΓá¡Γ
-
- àß½¿ πτáßΓóπεΘ¿Ñ ó «»Ñαᵿ¿ «»Ñαá¡ñδ »αÑñßΓáó½∩εΓ ß«í«⌐
- ¬«¡ßΓá¡Γδ »ÑαÑτ¿ß½¿¼«ú« Γ¿»á, Γ« ó Æπαí«-Åá߬á½Ñ Γá¬«Ñ óδαá-
- ªÑ¡¿Ñ óδτ¿ß½∩ÑΓß∩ ó« óαѼ∩ ¬«¼»¿½∩µ¿¿. ìá»α¿¼Ñα, óδαáªÑ¡¿Ñ
- ò:= 3+4*2 »α¿óÑñÑΓ ¬ úÑ¡Ñαᵿ¿ Γᬫú« ªÑ ¬«ñá, ¬á¬ óδαáªÑ¡¿Ñ
- ò := 11. ǡὫú¿τ¡«, Ñß½¿ «»Ñαá¡ñδ Σπ¡¬µ¿⌐
-
- Abs, Sqr, Succ, Pred, Odd, Lo, Hi, Swap
-
- »αÑñßΓáó½∩εΓ ß«í«⌐ ¬«¡ßΓá¡Γδ »ÑαÑτ¿ß½¿¼«ú« Γ¿»á, Γ« Σπ¡¬µ¿∩
- óδτ¿ß½∩ÑΓß∩ ó« óαѼ∩ ¬«¼»¿½∩µ¿¿.
- àß½¿ ¿¡ñѬ߫¼ ¼áßß¿óá ∩ó½∩ÑΓß∩ ¬«¡ßΓá¡ñá ¿½¿ óδαáªÑ¡¿Ñ,
- ß«ßΓ«∩ΘÑÑ ¿º ¬«¡ßΓá¡Γ, Γ« áñαÑß φ½Ñ¼Ñ¡Γá óδτ¿ß½∩ÑΓß∩ ó« óαÑ-
- ¼∩ ¬«¼»¿½∩µ¿¿. ìá»α¿¼Ñα, ñ«ßΓπ» ¬ φ½Ñ¼Ñ¡Γπ Dátá[5,5] ΓᬠªÑ
- φΣΣÑ¬Γ¿óÑ¡, ¬á¬ ñ«ßΓπ» ¬ »α«ßΓ«⌐ »ÑαѼѡ¡«⌐.
-
- 潿∩¡¿Ñ ¬«¡ßΓá¡Γ
-
- êß»«½∞º«óá¡¿Ñ «ñ¡«⌐ ¿ Γ«⌐ ªÑ ßΓ᫬«ó«⌐ ¬«¡ßΓá¡Γδ ñóá
- ¿½¿ í«½ÑÑ αẠ»α¿ó«ñ¿Γ ¬ úÑ¡Ñαᵿ¿ Γ«½∞¬« «ñ¡«⌐ ¬«»¿¿ ¬«¡ß-
- Γá¡Γδ. ìá»α¿¼Ñα, ñóá ¿½¿ í«½ÑÑ «»ÑαáΓ«αá Write('D«nÑ') ó «ñ-
- ¡«⌐ ¿ Γ«⌐ ªÑ τáßΓ¿ »α«úαá¼¼δ »α¿óÑñÑΓ ¬ ßßδ½¬Ñ ¡á «ñ¡π ¿ Γπ
- ªÑ ¬«»¿ε ßΓ᫬«ó«⌐ ¬«¡ßΓá¡Γδ 'DonÑ'.
-
- éδτ¿ß½Ñ¡¿Ñ »« ¬«α«Γ¬«⌐ ßσѼÑ
-
- é Æπαí«-Åá߬á½Ñ αÑ὿ºπÑΓß∩ óδτ¿ß½Ñ¡¿Ñ íπ½Ñó߬«ú« óδαá-
- ªÑ¡¿∩ »« ¬«α«Γ¬«⌐ ßσѼÑ. ¥Γ« «º¡áτáÑΓ, τΓ« óδτ¿ß½Ñ¡¿Ñ íπ-
- ½Ñó߬«ú« óδαáªÑ¡¿∩ »αѬαáΘáÑΓß∩, ¬á¬ Γ«½∞¬« αѺπ½∞ΓáΓ óßÑú«
- íπ½Ñó߬«ú« óδαáªÑ¡¿∩ ßΓá¡«ó¿Γß∩ «τÑó¿ñ¡δ¼. Åα¿ φΓ«¼ «íÑß»Ñ-
- τ¿óáÑΓß∩ ¼¿¡¿¼á½∞¡«Ñ óαѼ∩ óδ»«½¡Ñ¡¿∩ ¿, «íδτ¡«, ¼¿¡¿¼á½∞¡δ⌐
- αẼÑα «íΩÑ¬Γ¡«ú« ¬«ñá. éδτ¿ß½Ñ¡¿Ñ »« ¬«α«Γ¬«⌐ ßσÑ¼Ñ ñѽáÑΓ
- Γá¬ªÑ ó«º¼«ª¡δ¼ óδτ¿ß½Ñ¡¿Ñ ¬«¡ßΓαπ¬µ¿⌐, ¬«Γ«αδÑ ¿¡áτÑ í뫨
- íδ ¡Ññ«»πßΓ¿¼δ¼¿. ìá»α¿¼Ñα:
-
- while (I<=Length(S)) and (S[I]<>' ') do Inc(I);
- while (P<>nil) and (P^.Value<>5) do P:=P^.Next;
-
- é «í«¿σ ß½πτá∩σ, Ñß½¿ »Ñαóá∩ »α«óÑα¬á ¿¼ÑÑΓ º¡áτÑ¡¿Ñ
- FalsÑ, óΓ«αá∩ »α«óÑα¬á ¡Ñ óδτ¿ß½∩ÑΓß∩.
- Åα«Γ¿ó«»«½«ª¡δ¼ óδτ¿ß½Ñ¡¿ε »« ¬«α«Γ¬«⌐ ßσÑ¼Ñ ∩ó½∩ÑΓß∩
- »«½¡«Ñ óδτ¿ß½Ñ¡¿Ñ, ¬«Γ«α«Ñ ¼«ª¡« óδíαáΓ∞ ß »«¼«Θ∞ε ñ¿αÑ¬Γ¿óδ
- ¬«¼»¿½∩Γ«αá {$é+}. é φΓ«¼ ß½πτáÑ «íÑß»Ñτ¿óáÑΓß∩ óδτ¿ß½Ñ¡¿Ñ
- ¬áªñ«ú« «»Ñαá¡ñá íπ½Ñó߬«ú« óδαáªÑ¡¿∩.
-
- Å«α∩ñ«¬ óδτ¿ß½Ñ¡¿∩
-
- æΓá¡ñáαΓἿ Åá߬á½∩ ñ«»π߬áÑΓß∩, τΓ« «»Ñαá¡ñδ ó óδαáªÑ-
- ¡¿¿ τáßΓ« óδτ¿ß½∩εΓß∩ ó »«α∩ñ¬Ñ, «Γ½¿τ¡«¼ «Γ Γ«ú«, ó ¬«Γ«α«¼
- «¡¿ ºá»¿ßá¡δ (ß½Ñóá ¡á»αáó«). ìá»α¿¼Ñα, «»ÑαáΓ«α:
-
- I:=F(J) div G(J)
-
- úñÑ F ¿ G - Σπ¡¬µ¿¿ µÑ½«ú« Γ¿»á, »α¿ó«ñ¿Γ ¬ Γ«¼π, τΓ« G óδ-
- τ¿ß½∩ÑΓß∩ »ÑαÑñ óδτ¿ß½Ñ¡¿Ñ¼ F, Γᬠ¬á¬ φΓ« »«ºó«½∩ÑΓ ¬«¼»¿-
- ½∩Γ«απ »«½πτ¿Γ∞ í«½ÑÑ «»Γ¿¼á½∞¡δ⌐ «íΩÑ¬Γ¡δ⌐ ¬«ñ. é᪡«, »«φ-
- Γ«¼π, τΓ«íδ óδαáªÑ¡¿Ñ ¡¿¬«úñá ¡Ñ ºáó¿ßѽ« «Γ ¬á¬«ú«-Γ« ¬«¡¬-
- αÑΓ¡«ú« »«α∩ñ¬á óδτ¿ß½Ñ¡¿∩ óßΓα«Ñ¡¡δσ Σπ¡¬µ¿⌐. àß½¿ óÑα-
- ¡πΓ∞ß∩ ¬ »αÑñδñπΘѼπ »α¿¼Ñαπ, Γ« ñ½∩ Γ«ú«, τΓ«íδ óδºóáΓ∞
- Σπ¡¬µ¿ε F »ÑαÑñ Σπ¡¬µ¿Ñ⌐ G, ¼«ª¡« ¿ß»«½∞º«óáΓ∞ óαѼѡ¡πε »Ñ-
- αѼѡ¡πε:
-
- T:=F(J); I:=T div G(J);
-
- Åα¿¼Ñτá¡¿Ñ: ê߬½ετÑ¡¿Ñ¼ ¿º φΓ«ú« »αáó¿½á ∩ó½∩ÑΓß∩ óδ-
- τ¿ß½Ñ¡¿Ñ »« ¬«α«Γ¬«⌐ ßσÑ¼Ñ (αáºαÑΦÑ¡¡«Ñ ñ¿αÑ¬Γ¿ó«⌐
- ¬«¼»¿½∩Γ«αá {$é-}, »α¿ ¬«Γ«α«¼ «»Ñαá¡ñδ íπ½Ñó߬«ú«
- Γ¿»á, ßó∩ºá¡¡δÑ «»Ñαᵿ∩¼¿ and ¿½¿ «r, óßÑúñá óδτ¿ß½∩-
- εΓß∩ ß½Ñóá ¡á»αáó«.
-
- Åα«óÑα¬á ¡á ñ«»πßΓ¿¼«ßΓ∞ úαá¡¿µ
-
- Åα¿ßó«Ñ¡¿Ñ ¬«¡ßΓá¡Γδ »ÑαѼѡ¡«⌐ ¿ ¿ß»«½∞º«óá¡¿Ñ ¬«¡ß-
- Γá¡Γδ ó ¬áτÑßΓóÑ º¡áτÑ¡¿∩ »áαá¼ÑΓαá »α«óÑα∩ÑΓß∩ ó« óαѼ∩
- ¬«¼»¿½∩µ¿¿ ¡á ñ«»πßΓ¿¼«ßΓ∞ ¡áσ«ªñÑ¡¿∩ ó ºáñá¡¡δσ úαá¡¿µáσ.
- Åα¿ φΓ«¼ úÑ¡Ñα¿απÑΓß∩ Γᬫ⌐ ¬«ñ, τΓ« ó« óαѼ∩ óδ»«½¡Ñ¡¿∩ Γá-
- ¬¿σ »α«óÑ᫬ ¡Ñ ñѽáÑΓß∩. ìá»α¿¼Ñα, ò := 999, úñÑ ò - »ÑαÑ-
- ¼Ñ¡¡á∩ íá⌐Γ«ó«ú« Γ¿»á (BytÑ), »α¿ó«ñ¿Γ ¬ «Φ¿í¬Ñ ¬«¼»¿½∩µ¿¿.
-
- êß»«½∞º«óá¡¿Ñ ñó¿úá ó¼ÑßΓ« π¼¡«ªÑ¡¿∩
-
- Ä»Ñαᵿ∩ ò*æ, úñÑ æ - ¬«¡ßΓá¡Γá, ∩ó½∩εΘá∩ß∩ ßΓѻѡ∞ε
- τ¿ß½á 2, »α¿ó«ñ¿Γ ¬ úÑ¡Ñαᵿ¿ «íΩÑ¬Γ¡«ú« ¬«ñá, ó ¬«Γ«α«¼ ¿ß-
- »«½∞ºπÑΓß∩ ¿¡ßΓαπ¬µ¿∩ Shl (ßñó¿ú ó½Ñó«).
- ǡὫú¿τ¡«, ¬«úñá αẼÑα¡«ßΓ∞ ¼áßß¿óá »αÑñßΓáó½∩ÑΓ ß«-
- í«⌐ ßΓѻѡ∞ τ¿ß½á 2, Γ« ñ½∩ óδτ¿ß½Ñ¡¿∩ ¿¡ñѬߡδσ óδαáªÑ¡¿⌐
- ¿ß»«½∞ºπÑΓß∩ ¿¡ßΓαπ¬µ¿∩ Shl (á ¡Ñ ¿¡ßΓαπ¬µ¿∩ îul).
-
- ÇóΓ«¼áΓ¿τÑ߬«Ñ óδαáó¡¿óá¡¿Ñ ¡á úαá¡¿µπ ß½«óá
-
- Å« π¼«½τá¡¿ε Æπαí«-Åá߬á½∞ óδαáó¡¿óáÑΓ óßÑ »ÑαѼѡ¡δÑ ¿
- Γ¿»¿º«óá¡¡δÑ ¬«¡ßΓá¡Γδ, »αÑóδΦáεΘ¿Ñ »« αẼÑαπ 1 íá⌐Γ, ¡á
- úαá¡¿µπ ¼áΦ¿¡¡«ú« ß½«óá. ìá óßÑσ 16-αáºα∩ñ¡δσ »α«µÑßß«αáσ
- ßѼÑ⌐ßΓóá 80σ86 óδαáó¡¿óá¡¿Ñ ¡á úαá¡¿µπ ß½«óá «º¡áτáÑΓ í«½ÑÑ
- íδßΓα«Ñ óδ»«½¡Ñ¡¿Ñ, »«ß¬«½∞¬π ñ«ßΓπ» ¬ φ½Ñ¼Ñ¡Γá¼ αẼÑα«¼ ó
- ß½«ó« ¿½¿ τÑΓ¡δ¼ áñαÑßá¼ «ßπΘÑßΓó½∩ÑΓß∩ íδßΓαÑÑ, τѼ ¬ ß½«-
- óá¼ »« ¡ÑτÑΓ¡«¼π áñαÑßπ.
- éδαáó¡¿óá¡¿Ñ ñá¡¡δσ π»αáó½∩ÑΓß∩ ñ¿αÑ¬Γ¿ó«⌐ ¬«¼»¿½∩Γ«αá
- $A. Å« π¼«½τá¡¿ε ó ß«ßΓ«∩¡¿¿ {$A+} »ÑαѼѡ¡δÑ ¿ Γ¿»¿º«óá¡¡δÑ
- ¬«¡ßΓá¡Γδ óδαáó¡¿óáεΓß∩ π¬áºá¡¡δ¼ óδΦÑ «íαẫ¼. é ß«ßΓ«∩¡¿¿
- {$A-} ¡¿¬á¬¿σ ñÑ⌐ßΓó¿⌐ »« óδαáó¡¿óá¡¿ε ¡Ñ »α«¿ºó«ñ¿Γß∩.
- äá½∞¡Ñ⌐Φ¿Ñ »«ñα«í¡«ßΓ¿ »α¿óÑñÑ¡δ ó Åα¿½«ªÑ¡¿¿ é ("ä¿αÑ¬Γ¿óδ
- ¬«¼»¿½∩Γ«αá").
-
- ôñá½Ñ¡¿Ñ ¡Ñ¿ß»«½∞ºπѼ«ú« ¬«ñá
-
- Ä»ÑαáΓ«αδ, « ¬«Γ«αδσ ¿ºóÑßΓ¡«, τΓ« «¡¿ ¡¿¬«úñá ¡Ñ íπñπΓ
- óδ»«½¡∩Γ∞ß∩, ¡Ñ ó¬½ετáεΓß∩ ó «íΩÑ¬Γ¡δ⌐ ¬«ñ. äá¡¡δÑ óδαáªÑ-
- ¡¿∩, ¡á»α¿¼Ñα, ¡Ñ »α¿óÑñπΓ ¬ úÑ¡Ñαᵿ¿ «íΩÑ¬Γ¡«ú« ¬«ñá:
-
- if false then statement
- while false do statement
-
- ¥ΣΣÑ¬Γ¿ó¡á∩ ¬«¼»«¡«ó¬á
-
- ÉÑñá¬Γ«α ßó∩ºÑ⌐ áóΓ«¼áΓ¿τÑ߬¿ πñá½∩ÑΓ ¡Ñ¿ß»«½∞ºπѼδ⌐
- ¬«ñ (»« »α«µÑñπαá¼), Γ« ÑßΓ∞ »α«µÑñπαδ ¿ Σπ¡¬µ¿¿, ∩ó½∩εΘ¿Ñß∩
- τáßΓ∞ε ߬«¼»¿½¿α«óá¡¡«⌐ »α«úαá¼¼δ, ¡« ¬ ¬«Γ«αδ¼ ¡ÑΓ «íαáΘÑ-
- ¡¿⌐, ¡Ñ ó¬½ετáεΓß∩ ó Σá⌐½ Γ¿»á .àòà. Åα«µÑñπαδ, Σπ¬¡µ¿¿, »Ñ-
- αѼѡ¡δÑ ¿ Γ¿»¿º«óá¡¡δÑ ¬«¡ßΓá¡Γδ, πτáßΓóπεΘ¿Ñ ó »α«µÑßßÑ
- ¬«¼»¿½∩µ¿¿, ¡« ßß佬¿ ¡á ¬«Γ«αδÑ «ΓßπΓßΓóπεΓ, πñá½∩εΓß∩ ¿º
- Σá⌐½⌐ .EXE. ôñá½Ñ¡¿Ñ ¡Ñ¿ß»«½∞ºπѼ«ú« ¬«ñá óδ»«½∩¡ÑΓß∩ »«
- »α«µÑñπαá¼, á πñá½Ñ¡¿Ñ ¡Ñ¿ß»«½∞ºπѼδσ ñá¡¡δσ - »« ßѬµ¿∩¼,
- úñÑ φΓ¿ ñá¡¡δÑ «»¿ßδóáεΓß∩.
- Éáßß¼«Γα¿¼ ß½ÑñπεΘπε »α«úαá¼¼π:
-
- program SmartLink;
- const
- H: array[0..15] of char = '0123456789ABCDEF';
- var
- I,J : integer;
- X,Y : real;
- var
- S: string[79];
- var
- A: array[1..10000] of integer;
-
- procedure P1:
- begin
- A[1] = 1;
- end;
-
- procedure P2;
- begin
- I := 1;
- end;
-
- procedure P3;
- begin
- S := 'Turbo Pascal';
- P2;
- end;
-
- begin
- P3;
- end;
-
- Äß¡«ó¡á∩ »α«úαá¼¼á óδºδóáÑΓ »α«µÑñπαπ É3, ¬«Γ«αá∩ óδºδ-
- óáÑΓ »α«µÑñπαπ É2, »«φΓ«¼π «íÑ »α«µÑñπαδ É2 ¿ É3 ó¬½ετáεΓß∩
- ó Σá⌐½ .àòà. ū߬«½∞¬π É2 ßßδ½áÑΓß∩ ¡á »Ñαóδ⌐ αáºñѽ «»¿ßá-
- ¡¿∩ »ÑαѼѡ¡δσ, á É3 ßßδ½áÑΓß∩ ¡á óΓ«α«⌐ αáºñѽ «»¿ßá¡¿Ñ »Ñ-
- αѼѡ¡δσ, »ÑαѼѡ¡δÑ I, J, X, Y, S »º¬ªÑ ó¬½ετáεΓß∩ ó óδ»«½-
- ¡∩Ѽδ⌐ Σá⌐½. Äñ¡á¬« ¡á »α«µÑñπαπ É1 ¡¿¬á¬¿σ ßß佫¬ ¡ÑΓ, á
- ó¬½ετÑ¡¡δÑ ó óδ»«½∩¡Ñ¼δ⌐ Σá⌐½ »α«µÑñπαδ ¡Ñ ßßδ½áεΓß∩ ¡á »Ñ-
- αѼѡ¡δÑ ì ¿ A, »«φΓ«¼π φΓ¿ «íΩѬΓδ πñá½∩εΓß∩.
- ¥ΣΣÑ¬Γ¿ó¡á∩ ¬«¼»«¡«ó¬á ¿¼ÑÑΓ «ß«íπε µÑ¡¡«ßΓ∞ ó ßó∩º¿ ß
- ¿ß»«½∞º«ó᡿Ѽ ¼«ñπ½Ñ⌐, ¬«Γ«αδÑ αÑ὿ºπεΓ í¿í½¿«ΓѬ¿ »α«µÑ-
- ñπα ¿ Σπ¡¬µ¿⌐. Åα¿¼Ñα«¼ Γᬫú« ¼«ñπ½∩ ∩ó½∩ÑΓß∩ ßΓá¡ñáαΓ¡δ⌐
- ¼«ñπ½∞ Dos, ¬«Γ«αδ⌐ ß«ñÑαª¿Γ α∩ñ »α«µÑñπα ¿ Σπ¡¬µ¿⌐. Åα¿
- φΓ«¼ »α«úαá¼¼á αÑñ¬« ¿ß»«½∞ºπÑΓ óßÑ φΓ¿ »α«µÑñπαδ. àß½¿ «¡á
- ¿ß»«½∞ºπÑΓ Γ«½∞¬« «ñ¡π ¿½¿ ñóÑ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿, Γ«
- Γ«½∞¬« φΓ¿ »α«µÑñπαδ ó¬½ετáεΓß∩ ó »«½πτÑ¡¡δ⌐ ó αѺπ½∞ΓáΓÑ
- Σá⌐½ .àòà, τΓ« »«ºó«½∩ÑΓ º¡áτ¿Γѽ∞¡« π¼Ñ¡∞Φ¿Γ∞ Ñú« αẼÑα.
-
- Åα¿¼Ñτá¡¿Ñ: Åα¿ ¬«¼»¿½∩µ¿¿ ó »á¼∩Γ∞ φΣΣÑ¬Γ¿ó¡á∩
- ¬«¼»«¡«ó¬á Æπαí«-Åá߬á½∩ ¡Ñ αáí«ΓáÑΓ. ¥Γ¿¼ «íΩ∩ß¡∩ÑΓ-
- ß∩, »«τѼπ ¡Ñ¬«Γ«αδÑ »α«úαá¼¼δ ßΓá¡«ó∩Γß∩ ¼Ñ¡∞ΦÑ »α¿
- ¬«¼»¿½∩µ¿¿ ¿σ ¡á ñ¿ß¬.
-
-