Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Turbo Assembler
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅pΡΠ΅Π½ΠΈΡ — ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎp ΠΊΡpΡΠΎpΠ°; 0 — Π΅ΡΠ»ΠΈ ΠΊΡpΡΠΎp Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½; Π½Π΅ ΠΎΠΏpΠ΅Π΄Π΅Π»Π΅Π½ΠΎ, Π΅ΡΠ»ΠΈ pΠ΅ΡΡpΡ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ pΠ΅ΡΡpΡΠΎΠΌ ΠΊΡpΡΠΎpΠ°. ΠΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΡΠ°Π½Π΄Π°pΡΠ½ΡΡ ΠΎΠ±pΠ°Π±ΠΎΡΠΊΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π½ΠΎ Π½Π΅ ΠΎΠ±pΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΏpΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ. ΠΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΊ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΌΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΡΠΌΡ /Π.Π. ΠΡΠ»ΡΠΊΠΈΠ½. ΠΠΊΠ°ΡΠ΅ΡΠΈΠ½Π±ΡΡΠ³: ΠΈΠ·Π΄. ΠΠΠ Π£ΠΠ’Π£, 2004. — 40Ρ. ΠΠ°Π»Π°ΡΠ½ΠΈΠΊΠΎΠ² Π. Π. ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ? ΠΡΠΎ ΠΏΡΠΎΡΡΠΎ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Turbo Assembler (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
- ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ WinAPI ΡΡΠ½ΠΊΡΠΈΠΉ
- ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
- ΠΠΈΠ±Π»ΠΈΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π¦Π΅Π»ΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΡΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ³Π»ΡΠ±Π»Π΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠ΅ Π·Π½Π°Π½ΠΈΠΉ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΏΠΎ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π΅ «Π‘ΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅», ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΡΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Turbo Assembler.
ΠΠ»Π°Π²Π½ΡΠΌ ΠΆΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ·ΡΠΊΠ° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠ·ΡΠΊΠΎΠ² ΡΠΈΠΏΠ° Pascal ΠΈΠ»ΠΈ C, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΈΡΠΊΡΡΠ½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅, ΡΠ΅ΠΌ ΡΠ΅, ΡΡΠΎ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΡΡ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ°ΠΌΠΈ Ρ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. Π’. Π΅. Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΉ Π² ΠΏΠ°ΠΌΡΡΡ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΠΈ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ΄Π½Π°ΠΊΠΎ, Π² ΡΠΈΠ»Ρ ΡΠ²ΠΎΠ΅ΠΉ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΉ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠΈ («Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ» ΡΡΠΎΠ²Π½Ρ) ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΡ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΠ·ΡΠΊΠ°ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΡΠΈΡΠ°ΡΡ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΎΠ½Π° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ»ΠΈΡΠΊΠΎΠΌ «ΠΌΠ΅Π»ΠΊΠΈΡ » ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² — ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ°, ΡΠ°ΡΡΠ΅Ρ ΡΡΡΠ΄ΠΎΠ΅ΠΌΠΊΠΎΡΡΡ, Π²Π΅Π»ΠΈΠΊΠ° Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ. Π Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ WinAPI ΡΡΠ½ΠΊΡΠΈΠΉ
Π€ΡΠ½ΠΊΡΠΈΡ LoadIcon
ΠΠ°Π³pΡΠΆΠ°Π΅Ρ ΠΏΠΎΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ pΠ΅ΡΡpΡ ΠΏΠΈΠΊΡΠΎΠ³pΠ°ΠΌΠΌΡ.
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅pΡΠ΅Π½ΠΈΡ — ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎp ΠΏΠΈΠΊΡΠΎΠ³pΠ°ΠΌΠΌΡ; 0 — Π² ΠΏpΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅.
Π€ΡΠ½ΠΊΡΠΈΡ LoadCursor
ΠΠ°Π³pΡΠΆΠ°Π΅Ρ ΠΏΠΎΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ pΠ΅ΡΡpΡ ΠΊΡpΡΠΎpΠ°.
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅pΡΠ΅Π½ΠΈΡ — ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎp ΠΊΡpΡΠΎpΠ°; 0 — Π΅ΡΠ»ΠΈ ΠΊΡpΡΠΎp Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½; Π½Π΅ ΠΎΠΏpΠ΅Π΄Π΅Π»Π΅Π½ΠΎ, Π΅ΡΠ»ΠΈ pΠ΅ΡΡpΡ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ pΠ΅ΡΡpΡΠΎΠΌ ΠΊΡpΡΠΎpΠ°.
Π€ΡΠ½ΠΊΡΠΈΡ RegisterClassEx
Π Π΅Π³ΠΈΡΡpΠΈpΡΠ΅Ρ ΠΊΠ»Π°ΡΡ ΠΎΠΊΠ½Π°, Π°ΡpΠΈΠ±ΡΡΡ ΠΊΠΎΡΠΎpΠΎΠ³ΠΎ ΠΎΠΏpΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΏΠ°pΠ°ΠΌΠ΅ΡpΠΎΠΌ WndClassEx, Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ»Π°ΡΡ ΠΎΠΊΠ½Π° ΠΌΠΎΠΆΠ΅Ρ pΠ΅Π³ΠΈΡΡpΠΈpΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ pΠ°Π·.
Π€ΡΠ½ΠΊΡΠΈΡ ShowWindow
ΠΡΠΎΠ±pΠ°ΠΆΠ°Π΅Ρ ΠΈΠ»ΠΈ ΠΏpΡΡΠ΅Ρ ΠΎΠΊΠ½ΠΎ ΠΎΠ±pΠ°Π·ΠΎΠΌ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΏΠ°pΠ°ΠΌΠ΅ΡpΠΎΠΌ CmdShow.
Π€ΡΠ½ΠΊΡΠΈΡ GetMessage
Π‘ΡΠΈΡΡΠ²Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π² pΠ°ΠΌΠΊΠ°Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΡΠΈΠ»ΡΡpΠ°ΡΠΈΠΈ, ΠΈΠ· ΠΎΡΠ΅pΠ΅Π΄ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏpΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ. ΠΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΏpΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄pΡΠ³ΠΈΠΌ ΠΏpΠΈΠΊΠ»Π°Π΄Π½ΡΠΌ Π·Π°Π΄Π°ΡΠ°ΠΌ, Π΅ΡΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π½Π΅Ρ ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ wm_Paint ΠΈΠ»ΠΈ wm_Timer.
Π€ΡΠ½ΠΊΡΠΈΡ DefWindowProc
ΠΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΡΠ°Π½Π΄Π°pΡΠ½ΡΡ ΠΎΠ±pΠ°Π±ΠΎΡΠΊΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π½ΠΎ Π½Π΅ ΠΎΠ±pΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΏpΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ.
ΠΠΎΠ·Π²pΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅: ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΠ±pΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π Ρ ΠΎΠ΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π½Π°Π²ΡΠΊΠΈ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Win32 API. ΠΡΠ»Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ Π² EXE-ΡΠΎΡΠΌΠ°ΡΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Turbo Assembler, ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΠ°Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ Π·Π°Π΄Π°Π½ΠΈΡ: Π΄Π°Π½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ Π² ΡΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ.
ΠΠΈΠ±Π»ΠΈΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ
1. ΠΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΊ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΌΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΡΠΌΡ /Π.Π. ΠΡΠ»ΡΠΊΠΈΠ½. ΠΠΊΠ°ΡΠ΅ΡΠΈΠ½Π±ΡΡΠ³: ΠΈΠ·Π΄. ΠΠΠ Π£ΠΠ’Π£, 2004. — 40Ρ.
2. ΠΠ°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΡΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΡΠΌ ΠΏΠΎ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π΅ «Π‘ΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅» / Π£ΡΠΈΠΌΡΠΊ. Π³ΠΎΡ. Π°Π²ΠΈΠ°Ρ. ΡΠ΅Ρ Π½. ΡΠ½-Ρ. Π‘ΠΎΡΡ.: Π. Π. ΠΡΠ½ΡΠ΅Π². — Π£ΡΠ°, 2008. — 57 Ρ.
3. ΠΠ°Π»Π°ΡΠ½ΠΈΠΊΠΎΠ² Π. Π. ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ? ΠΡΠΎ ΠΏΡΠΎΡΡΠΎ! Π£ΡΠΈΠΌΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ. Π‘ΠΠ±.: ΠΠ₯Π-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³, 2006. — 384 Ρ.: ΠΈΠ».
4. ΠΠ±Π΅Π»Ρ Π. ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ. Π―Π·ΡΠΊ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π»Ρ IBM PC / ΠΠ΅Ρ. Ρ Π°Π½Π³Π». — Π.: ΠΠ΅ΠΊ+, Π.: ΠΠΠ’Π ΠΠ, 2005. — 736 Ρ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π — ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
.586
. model flat, stdcall
extern GetModuleHandleA: near
extern LoadIconA: near
extern LoadCursorA: near
extern RegisterClassA: near
extern CreateWindowExA: near
extern GetMessageA: near
extern ShowWindow: near
extern UpdateWindow: near
extern TranslateMessage: near
extern DispatchMessageA: near
extern ExitProcess: near
extern DefWindowProcA: near
extern PostQuitMessage: near
extern BeginPaint: near
extern EndPaint: near
extern TextOutA: near
extern SetBkColor: near
extern InvalidateRect: near
includelib user32. lib
includelib kernel32. lib
includelib gdi32. lib
include windows. inc
style equ CS_HREDRAW + CS_VREDRAW + CS_GLOBALCLASS
_Data segment
hWnd dd 0
msg MSG >
wc WNDCLASS >
pnt PAINTSTRUCT >
hInst dd 0
TitleName db 'ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° 1', 0
ClassName db 'Class32', 0
char WPARAM 20h
clear db ' ', 0
hdc dd 0
_Data ends
_Code segment
Start:
push 0
call GetModuleHandleA
mov [hInst], eax
mov [wc. style], style
mov [wc. lpfnWndProc], offset WndProc
mov [wc. cbClsExtra], 0
mov [wc. cbWndExtra], 0
mov eax, [hInst]
mov [wc. hInstance], eax
push IDI_APPLICATION
push 0
call LoadIconA
mov [wc. hIcon], eax
push IDC_CROSS
push 0
call LoadCursorA
mov [wc. hCursor], eax
mov [wc. hbrBackground], 0
mov dword ptr [wc. lpszMenuName], 0
mov dword ptr [wc. lpszClassName], offset ClassName
push offset wc
call RegisterClassA
push 0
push [hInst]
push 0
push 0
push 400
push 400
push 100
push 100
push WS_OVERLAPPEDWINDOW
push offset TitleName
push offset ClassName
push 0
call CreateWindowExA
cmp eax, 0
jz _err
mov [hWnd], eax
push SW_SHOWNORMAL
push [hWnd]
call ShowWindow
push [hWnd]
call UpdateWindow
msg_loop:
push 0
push 0
push 0
push offset msg
call GetMessageA
cmp eax, 0
je end_loop
push offset msg
call TranslateMessage
push offset msg
call DispatchMessageA
jmp msg_loop
end_loop:
push [msg. wParam]
call ExitProcess
_err:
jmp end_loop
WndProc proc
push ebp
mov ebp, esp
push ebx
push esi
push edi
cmp dword ptr [ebp+0ch], WM_DESTROY
je wmdestroy
cmp dword ptr [ebp+0ch], WM_CREATE
je wmcreate
cmp dword ptr [ebp+0ch], WM_PAINT
je wmpaint
cmp dword ptr [ebp+0ch], WM_CHAR
je wmchar
jmp defwndproc
wmchar:
push dword ptr [ebp+10h]
pop char
push TRUE
push NULL
push dword ptr [ebp+08h]
call InvalidateRect
wmpaint:
push offset pnt
push dword ptr [ebp+08h]
call BeginPaint
mov hdc, eax
push 5
push offset clear
push 100
push 100
push hdc
call TextOutA
push 1
push offset char
push 100
push 100
push hdc
call TextOutA
push offset pnt
push eax
call EndPaint
mov eax, 0
jmp finish
wmcreate:
mov eax, 0
jmp finish
defwndproc:
push dword ptr [ebp+14h]
push dword ptr [ebp+10h]
push dword ptr [ebp+0ch]
push dword ptr [ebp+08h]
call DefWindowProcA
jmp finish
wmdestroy:
push 0
call PostQuitMessage
mov eax, 0
finish:
pop edi
pop esi
pop ebx
pop ebp
ret 16
WndProc endp
lenstr proc
push ebp
mov ebp, esp
push esi
mov esi, dword ptr [ebp+8]
xor ebx, ebx
lbl1:
cmp byte ptr [esi], 0
jz lbl2
inc ebx
inc esi
jmp lbl1
lbl2:
pop esi
pop ebp
ret 4
lenstr endp
_Code ends
end Start