: 33 , ; 26 SRAM; 2 -; 1 Flash; 22 -; 34 .
. Flash / , , .
, 2 - Atmega 128 ( , , , ).
; r1: r0 c r3:r2 | |
Add r2,r0 | ; |
Adc r3,r1 | ; |
Add r1,r2 | ; r2 r1 (r1=r1+r2) |
Adc r28,r28 | ; r28 (r28=r28+r28) |
Adiw r24,1 | ; 1 c r25:r24 |
Adiw r30,63 | ; 63 c Z (r31:r30) |
And r2,r3 | ; ; r2 r3, r2 |
Ldi r16,1 | ; 0000 0001 r16 |
And r2,r16 | ; 0 r2 |
Andi r17 $0F | ; 4-7 r17 |
Andi r18 $10 | ; 4 r18 |
Andi r19 $AA | ; r19 |
Cpi r20,5 | ; r20 5 | |
Brbc 1,noteq | ;, | |
Noteq: | Nop | ;, ( ) |
Bst r0,3 | ; 3 r0 | |
Brbs 6,et | ; , T | |
et: | Nop | ; ( ) |
Add r22,r23 | ; r23 c r22 | |
Brcc nocarry | ;, | |
Nocarry: | Nop | ; ( ) |
Cpi r26,$56 | ; r26 c $56 | |
Brcs carry | ;, | |
; | ||
Carry: | nop | ; ( ) |
p r1,r0 | ; r1 r0 | |
Breq equal | ;, | |
. | ; | |
Equal: | Nop | ; ( ) |
Cp r11, r12 | ; r11 r12 | |
Brge greateq | ;, r11>=r12 ( ) | |
.. | ; | |
Greateq: | Nop | ; ( ) |
Brhc hclear | ;, | |
; | ||
Hclear: | Nop | ; ( ) |
|
|
Mov r16,r0 | ; r0 r16 | |
Call check | ; | |
; | ||
Nop | ; | |
Check: | Cpi r16,$42 | ;, r16 |
Breq error | ;, | |
Ret | ; | |
Error: | Rjmp error | ; |
Mov r16,r0 | ; r0 r16 | |
Call check | ; check | |
; | ||
Nop | ; | |
Check: | Cpi r16,$42 | ;, r16 |
Breq error | ; error, | |
Ret | ; |
Clr r27 | ; X |
Ldi r26,$20 | ; $20 X |
Ld r0,X+ | ; r0 SRAM $20 (X ) |
Ld r1,X | ; r1 SRAM $21 |
Ldi r26,$23 | ; $23 X |
Ld r2,X | ; r2 SRAM $23 |
Ld r3,-X | ; r3 SRAM $22 (X ) |
Clr r31 | ; Z |
Ldi r30, $f0 | ; $F0 Z |
Lpm | ; r0. Z |
Lds r2,$ff00 | ; r2 SRAM $ff00 |
Add r2, r1 | ; r1 r2 |
Sts $ff00,r2 | ; |
Clr r31 | ; Z |
Ldi r30,$ff | ; Z |
lpm | ; r0 Z (r31:r30) |
Mul r6,r5 | ; r6 r5 |
Mov r6,r1 | ; r6:r5 |
Mov r5,r0 |
Clr r16 | ; r16 |
Out $18, r16 Out portb, r16 | ; ( $18 ) |
Nop | ; ( ) |
Ser r17 | ; r17 |
Out portb,r17 | ; |
Call routine | ; routine | |
; | ||
Routine: | Push r14 | ; r14 |
Push r13 | ; r13 | |
; | ||
Pop r13 | ; r13 | |
Pop r14 | ; r14 | |
Ret | ; |
e2wait: | Sbic $1c,1 | ; , EEWE ( $1c EEPROM EECR) |
Rjmp e2wait | ; EEPROM | |
nop | ; ( ) |
; r1:r0 r3:r2 | |
Sub r2,r0 | ; |
Sbc r3,r1 | ; |
Out $1E,r0 | ; EEPROM |
Sbi $1c,0 | ; EECR |
In r1,$1d | ; EEPROM |
Cli | ; |
In r13, $16 | ; |
sei | ; |
Clr r27 | ; X |
Ldi r26,$20 | ; $20 X |
St X+,r0 | ; r0 SRAM $20 (X ) |
St X, r1 | ; r1 SRAM $21 |
Ldi r26,$23 | ; $23 X |
St r2, X | ; r2 SRAM $23 |
St r3, -X | ; r3 c SRAM $22 (X ) |
|
|
Lds r2, $ff00 | ; r2 SRAM $ff00 |
Add r2,r1 | ; r1 c r2 |
Sts $ff00,r2 | ; |
Ldi r16, $10 | ; 16 r16 |
Asr r16 | ; R16 2, .. r16=r16/2 |
Ldi r17, $fc | ; 4 r17 |
Asr r17 | ;r17=r17/2 |