ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π² ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ «CASMAVR».
Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ casmavr ΡΠ°ΠΉΠ» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°.
Π¦Π΅Π»Ρ ΡΠ°Π±ΠΎΡΡ.
ΠΡΠ²ΠΎΠΈΡΡ ΡΡΠ΅Π΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ «CASMAVR».
Π₯ΠΎΠ΄ ΡΠ°Π±ΠΎΡΡ.
ΠΠ°ΠΏΡΡΡΠΈΡΡ Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ «Π’ΡΡΠ±ΠΎ ΠΡΡΠ΅ΠΌΠ±Π»Π΅Ρ-AVR» (CasmAVR.exe). ΠΠΎΠΌΠ°Π½Π΄ΠΎΠΉ File/New ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ File/Save As ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π΅Π³ΠΎ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, demo2.asm. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΡΠ΅ΠΊΡΡΠ°, ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π ΡΠ°ΠΉΠ» demo2. asm ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡ:
; My very first AVR Project.
org 0×0000.
rjmp RESET.
RESET:
ldi R20, 0XFF.
Loop:
dec R20.
rjmp Loop.
4. ΠΠΎΡΠ»Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π²Π²Π΅Π΄Π΅Π½ΠΎ «ENTER» (Π½Π°ΠΆΠ°ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ°).
1. ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
2. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Windows/Resource ΠΎΡΠΊΡΡΡΡ ΡΠΏΡΠ°Π²Π° ΠΎΡ ΠΎΠΊΠ½Π° ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΡΠ΅ΠΊΡΡΠ° ΠΎΠΊΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
3. ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Ran/Programm/Reset.
4. ΠΡΠ·Π²Π°ΡΡ ΠΎΠΊΠ½ΠΎ Disassembler, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΅Π³ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π°Π΄ΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π΅Ρ ΠΊΠΎΠ΄, ΡΠΎΡΠΌΠ°Ρ (Π² Π±Π°ΠΉΡΠ°Ρ
) ΠΈ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
5. ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ dec Π² ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΡΡΠΎΠΊΠ΅ Π½Π° inc ΠΈ ΡΠ½ΠΎΠ²Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΈΠ½ΠΈΡΠΈΠΈΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΊΠ»Π°Π²ΠΈΡΠ΅ΠΉ F7.
6. ΠΡΠ·Π²Π°ΡΡ ΠΎΠΊΠ½ΠΎ Disassembler ΠΈ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
Π ΠΈΡ. 1.
Π ΠΈΡ. 2.
Π ΠΈΡ. 3.
Π ΠΈΡ. 4.
ΠΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ.
1. ΠΠ±ΡΡΡΠ½ΠΈΡΡ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.
2. Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΎΠ² Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π·Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΊΡΠΎΠ²ΡΠΉ ΡΠΈΠΊΠ».
3. ΠΠΎΡΡΠ½ΠΈΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠΊ.
ΠΡΠ²Π΅ΡΡ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ.
1. rjmp RESET — ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΡΠ±ΡΠΎΡΠ°.
RESET: — ΡΠ±ΡΠΎΡ.
ldi R20, 0XFF — Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π±Π°ΠΉΡΠ° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠ΅ΠΊΠ° Π² R20.
Loop: — ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Ρ
ΠΎΠ΄ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
dec R20 (inc R20) ;
rjmp Loop ;
2. ΠΠ° ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΊΡΠΎΠ²ΡΠΉ ΡΠΈΠΊΠ» Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ Π΄Π²Π° ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°.
3. rjmp — Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Π°.
Ldi — Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΠ΅Π³ΠΈΡΡΡ
Dec — ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ.
Inc — ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ.