Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

А вот оно же, но дизассемблированное ReAVR'ом, который ты можешь скачать по ссылке (+) -->

Отправлено MBedder 28 декабря 2008 г. 14:31
В ответ на: Прекрасно открывается и дизассемблируется(+) отправлено MBedder 28 декабря 2008 г. 14:15


; reassembly of "Foo1.hex"
; created by ReAVR V3.2.0
; at 2008/12/28 - 14:29:57
; for Atmel AVR assembler
;---------------------------------------
; AVR_TYPE=<unknown>
; FLASH_SIZE=8KB
; SRAM_START=0x60
;---------------------------------------
.cseg
.org 0x0000
;---------------------------------------
; byte constants:
;
.equ k00 = 0x00 ;
.equ k01 = 0x01 ;
.equ k02 = 0x02 ;
.equ k03 = 0x03 ;
.equ k05 = 0x05 ;
.equ k06 = 0x06 ;
.equ k07 = 0x07 ;
.equ k08 = 0x08 ;
.equ k09 = 0x09 ;
.equ k0A = 0x0A ;
.equ k0D = 0x0D ;
.equ k0E = 0x0E ;
.equ k0F = 0x0F ;
.equ k10 = 0x10 ;
.equ k1A = 0x1A ;
.equ k1C = 0x1C ;
.equ k1E = 0x1E ;
.equ k20 = 0x20 ; ' '
.equ k2F = 0x2F ; '/'
.equ k30 = 0x30 ; '0'
.equ k3F = 0x3F ; '?'
.equ k5A = 0x5A ; 'Z'
.equ k60 = 0x60 ; '`'
.equ k80 = 0x80 ;
.equ k81 = 0x81 ;
.equ k8C = 0x8C ;
.equ k8F = 0x8F ;
.equ k90 = 0x90 ;
.equ kC0 = 0xC0 ; 'А'
.equ kC1 = 0xC1 ; 'Б'
.equ kDF = 0xDF ; 'Я'
.equ kFE = 0xFE ; 'ю'
;
; io register addresses:
;
.equ p04 = 0x04
.equ p05 = 0x05
.equ p06 = 0x06
.equ p07 = 0x07
.equ p08 = 0x08
.equ p16 = 0x16
.equ p17 = 0x17
.equ p18 = 0x18
.equ p1C = 0x1C
.equ p1D = 0x1D
.equ p1E = 0x1E
.equ p21 = 0x21
.equ p2C = 0x2C
.equ p2E = 0x2E
.equ p30 = 0x30
.equ p31 = 0x31
.equ p33 = 0x33
.equ p34 = 0x34
.equ p35 = 0x35
.equ p39 = 0x39
.equ p3B = 0x3B
;
; pointer offsets:
;
.equ o14 = 0x14
;
; bit numbers:
;
.equ b0 = 0x00
.equ b1 = 0x01
.equ b2 = 0x02
.equ b3 = 0x03
.equ b4 = 0x04
.equ b5 = 0x05
.equ b6 = 0x06
.equ b7 = 0x07
;---------------------------------------
;
L0000:
rjmp _reset ; L00B5
; ----------- jump on last line
nop
nop
nop
nop
nop
nop
rjmp _reset ; L00B5
; ----------- jump on last line
reti
;----------------------*
; pc=0x9(0x12)
;
.dw 0xFFFF ; pc=0x0009(0x0012)
.dw 0xFFFF ; pc=0x000A(0x0014)
.dw 0xFFFF ; pc=0x000B(0x0016)
.dw 0xFFFF ; pc=0x000C(0x0018)
.dw 0x0014 ; pc=0x000D(0x001A)
.dw 0x0005 ; pc=0x000E(0x001C)
.dw 0x008D ; pc=0x000F(0x001E)
L0010:
ldi r30,k1C
lpm
mov r18,r0
L0013:
ldi r17,k5A
clr r16
L0015:
dec r16
rjmp L0017
; ----------- jump on last line
L0017:
rjmp L0018
; ----------- jump on last line
L0018:
brne L0015
; ----- branch on last line
wdr
; pc=0x1A(0x34)
;
dec r17
brne L0015
; ----- branch on last line
dec r18
brne L0013
; ----- branch on last line
ret
;----------------------*
; pc=0x1F(0x3E)
;
L001F:
clr r17
sub r5,r16
sbc r4,r17
sbc r3,r17
sbc r2,r17
brcc L002A
; ----- branch on last line
neg r5
com r4
com r3
com r2
set
L002A:
ret
;----------------------*
; pc=0x2B(0x56)
;
L002B:
ldi r17,k0A
ldi r16,k20
clr r1
L002E:
rol r5
rol r4
rol r3
rol r2
rol r1
cp r1,r17
brcs L0038
; ----- branch on last line
sub r1,r17
sec
rjmp L0039
; ----------- jump on last line
L0038:
clc
L0039:
dec r16
brne L002E
; ----- branch on last line
rol r5
rol r4
rol r3
rol r2
ret
;----------------------*
; pc=0x40(0x80)
;
L0040:
cbi p18,b3
cbi p18,b4
ldi r22,k2F
rcall L0063
ldi r22,k3F
rcall L0063
ldi r22,k20
rcall L0063
ldi r16,k0A
ldi r30,k06
L004A:
ld r17,Z
mov r20,r30
mov r21,r31
ldi r30,k08
ldi r31,k03
add r30,r17
brcc L0052
; ----- branch on last line
inc r31
L0052:
lpm
mov r30,r20
mov r31,r21
mov r17,r0
mov r22,r0
swap r17
andi r17,k0F
andi r22,k0F
ori r17,k30
ori r22,k30
rcall L0063
mov r22,r17
rcall L0063
inc r30
dec r16
brne L004A
; ----- branch on last line
ret
;----------------------*
; pc=0x63(0xC6)
;
L0063:
ldi r23,k07
lsl r22
lsl r22
L0066:
lsl r22
brcs L006A
; ----- branch on last line
cbi p18,b4
rjmp L006C
; ----------- jump on last line
L006A:
sbi p18,b4
nop
L006C:
sbi p18,b3
nop
cbi p18,b3
dec r23
brne L0066
; ----- branch on last line
ret
;----------------------*
; pc=0x72(0xE4)
;
L0072:
ldi r18,k10
cpi r29,k09
brcs L0076
; ----- branch on last line
ldi r29,k08
L0076:
mov r16,r29
L0077:
tst r16
breq L0085
; ----- branch on last line
dec r16
clc
rol r18
brcc L0080
; ----- branch on last line
L007D:
ror r18
inc r16
rjmp L0085
; ----------- jump on last line
L0080:
rol r18
brcc L0077
; ----- branch on last line
breq L0085
; ----- branch on last line
ror r18
rjmp L007D
; ----------- jump on last line
L0085:
dec r18
ldi r17,k01
tst r16
L0088:
breq L008F
; ----- branch on last line
subi r17,kFE
cpi r17,k10
brcc L008E
; ----- branch on last line
dec r16
rjmp L0088
; ----------- jump on last line
L008E:
ldi r17,k0F
L008F:
andi r17,k0F
ori r17,k90
out p2E,r18
out p30,r17
rcall L0010
cpi r29,k06
brcs L00A2
; ----- branch on last line
L0096:
; --------- this is skippy
sbis p16,b1
rjmp L0096
; --------- last may be skipped
; pc=0x98(0x130)
;
wdr
; pc=0x99(0x132)
;
L0099:
; --------- this is skippy
sbic p16,b1
rjmp L0099
; --------- last may be skipped
; pc=0x9B(0x136)
;
wdr
; pc=0x9C(0x138)
;
ldi r17,k05
clr r16
L009E:
dec r16
brne L009E
; ----- branch on last line
dec r17
brne L009E
; ----- branch on last line
L00A2:
sleep
in r5,p04
in r4,p05
clr r3
clr r2
ret
;----------------------*
; pc=0xA8(0x150)
;
L00A8:
cli
out p1E,r16
out p1D,r18
sbi p1C,b2
sbi p1C,b1
L00AD:
; --------- this is skippy
sbic p1C,b1
rjmp L00AD
; --------- last may be skipped
; pc=0xAF(0x15E)
;
sei
ret
;----------------------*
; pc=0xB1(0x162)
;
L00B1:
out p1E,r16
sbi p1C,b0
in r17,p1D
ret
;----------------------*
; pc=0xB5(0x16A)
;
_reset:
; L00B5:
cli
in r17,p34
ldi r16,k0D
out p21,r16
wdr
; pc=0xBA(0x174)
;
clr r16
out p34,r16
out p3B,r16
out p39,r16
out p33,r16
out p30,r16
out p2C,r16
out p1C,r16
ldi r16,k60
out p35,r16
clr r31
ldi r30,k1E
lpm
out p31,r0
ldi r16,k80
out p08,r16
ldi r16,k02
out p18,r16
ldi r16,k1A
out p17,r16
ldi r16,kC1
out p07,r16
ldi r16,k8C
out p06,r16
sei
tst r17
breq L00F1
; ----- branch on last line
andi r17,k0D
brne L00F1
; ----- branch on last line
ldi r16,k0A
ldi r30,k06
ldi r17,k0D
L00DA:
st Z,r17
inc r30
dec r16
brne L00DA
; ----- branch on last line
rcall L0040
clr r29
rcall L0072
ldi r18,k05
rcall L0013
rcall L0072
tst r4
brne L00E9
; ----- branch on last line
mov r28,r5
cpi r28,kC0
brcs L00EA
; ----- branch on last line
L00E9:
clr r28
L00EA:
mov r18,r28
com r18
ldi r16,k01
rcall L00B1
; --------- this is skippy
cpse r17,r18
rcall L00A8
; --------- last may be skipped
; pc=0xF0(0x1E0)
;
rjmp L00FB
; ----------- jump on last line
L00F1:
ldi r16,k01
rcall L00B1
mov r28,r17
com r28
ldi r29,k08
rcall L0072
ldi r30,k1A
lpm
mov r18,r0
rcall L0013
L00FB:
rcall L0072
mov r17,r5
mov r16,r4
cpi r16,k03
brcc L0103
; ----- branch on last line
tst r16
breq L0117
; ----- branch on last line
rjmp L011D
; ----------- jump on last line
L0103:
cpi r17,k81
brcs L011D
; ----- branch on last line
cpi r29,k08
brcc L0108
; ----- branch on last line
inc r29
L0108:
ldi r16,k0E
mov r6,r16
mov r7,r29
inc r7
ldi r16,k0F
mov r8,r16
mov r9,r16
mov r10,r16
mov r11,r16
mov r12,r16
mov r13,r16
mov r14,r16
mov r15,r16
rcall L0040
rjmp L00FB
; ----------- jump on last line
L0117:
cpi r17,kC0
brcc L011D
; ----- branch on last line
tst r29
breq L011D
; ----- branch on last line
dec r29
rjmp L0108
; ----------- jump on last line
L011D:
mov r16,r29
L011E:
tst r16
breq L012A
; ----- branch on last line
ldi r17,k02
L0121:
clc
rol r5
rol r4
rol r3
rol r2
dec r17
brne L0121
; ----- branch on last line
dec r16
rjmp L011E
; ----------- jump on last line
L012A:
cpi r28,kC0
brcs L012D
; ----- branch on last line
clr r28
L012D:
mov r16,r28
clt
rcall L001F
clc
ldi r18,k0A
ldi r30,k0F
L0133:
rcall L002B
wdr
; pc=0x135(0x26A)
;
st Z,r1
dec r30
dec r18
brne L0133
; ----- branch on last line
ldi r18,k03
ldi r16,k0A
ldi r30,k05
L013C:
inc r30
ld r17,Z
tst r17
brne L0143
; ----- branch on last line
dec r16
brne L013C
; ----- branch on last line
rjmp L015A
; ----------- jump on last line
L0143:
sub r16,r18
brcs L015A
; ----- branch on last line
breq L015A
; ----- branch on last line
add r30,r18
mov r19,r30
ld r17,Z
cpi r17,k05
brcs L0154
; ----- branch on last line
inc r18
L014C:
dec r30
ld r17,Z
inc r17
st Z,r17
cpi r17,k0A
brne L0154
; ----- branch on last line
dec r18
brne L014C
; ----- branch on last line
L0154:
mov r30,r19
clr r17
L0156:
st Z,r17
inc r30
dec r16
brne L0156
; ----- branch on last line
L015A:
ldi r16,k0A
ldi r30,k05
L015C:
inc r30
ld r17,Z
tst r17
brne L016A
; ----- branch on last line
dec r16
brne L015C
; ----- branch on last line
ldi r17,k0A
st Z,r17
rjmp L016D
; ----------- jump on last line
L0165:
ld r17,Z
tst r17
brne L016A
; ----- branch on last line
ldi r17,k0A
st Z,r17
L016A:
inc r30
dec r16
brne L0165
; ----- branch on last line
L016D:
brtc L0170
; ----- branch on last line
ldi r16,k0F
mov r6,r16
L0170:
tst r6
breq L0174
; ----- branch on last line
mov r7,r8
rjmp L017B
; ----------- jump on last line
L0174:
tst r7
breq L017A
; ----- branch on last line
mov r6,r7
mov r7,r8
rjmp L017B
; ----------- jump on last line
mov r7,r6
L017A:
mov r6,r8
L017B:
mov r8,r9
mov r9,r10
mov r10,r11
mov r11,r12
mov r12,r13
mov r13,r14
clr r14
rcall L0040
rjmp L00FB
; ----------- jump on last line
ori r16,k00
ori r18,kDF
rjmp 0x0F68
; ----------- jump on last line
ori r28,k8F
ldi r30,kDF
cpc r14,r14
std Z+o14,r16
movw r20,r22
;
; last flash byte address = 0x0317
; last flash word address = 0x018B
;---------------------------------------
; Code not seems to use any RAM.
;---------------------------------------
;<eof>



Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
отымите от 2 единицу:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru