Elektronika.lt
 2025 m. liepos 13 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 Forumas / + pokalbiai
 - Paieška forume
 - D.U.K. / Forumo taisyklės
 - Narių sąrašas
 - Registruotis
 - Prisijungti

Elektronika.lt portalo forumas

Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo. Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.

Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius, kurie nesilaiko forumo taisyklių. Pastebėjus nusižengimus, prašome pranešti.

Dabar yra 2025 07 13, 03:18. Visos datos yra GMT + 2 valandos.
 Forumas » Mikrovaldikliai » AVR *.hex Disasembleraivimas
Jūs negalite rašyti naujų pranešimų į šį forumą
Jūs negalite atsakinėti į pranešimus šiame forume
Jūs negalite redaguoti savo pranešimų šiame forume
Jūs negalite ištrinti savo pranešimų šiame forume
Jūs negalite dalyvauti apklausose šiame forume
 
  
Puslapis 11
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 AVR *.hex Disasembleraivimas
PranešimasParašytas: 2015 04 29, 16:28 Pranešti apie taisyklių pažeidimą Atsakyti su citata
BumBum
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Svieki. Švietimo tikslais priireikė panagrinėt svetima programą. Surco nėra. Skirtas atmegai 8
hex
http://s000.tinyupload.com/index.php?file_id=00591333084473762974

Bandau su įvairiom Avr studio versijom


Avr studio v.3.56

Gaunam Kaip ir ASM kodą

+00000000: C03A RJMP +0x003A ; Destination: 0x00003B
+00000001: CFFE RJMP -0x0002 ; Destination: 0x000000
+00000002: CFFD RJMP -0x0003 ; Destination: 0x000000
+00000003: CFFC RJMP -0x0004 ; Destination: 0x000000
+00000004: C1C3 RJMP +0x01C3 ; Destination: 0x0001C8
+00000005: CFFA RJMP -0x0006 ; Destination: 0x000000
+00000006: CFF9 RJMP -0x0007 ; Destination: 0x000000
+00000007: C1B6 RJMP +0x01B6 ; Destination: 0x0001BE
+00000008: C1B0 RJMP +0x01B0 ; Destination: 0x0001B9
+00000009: C0A9 RJMP +0x00A9 ; Destination: 0x0000B3
+0000000A: CFF5 RJMP -0x000B ; Destination: 0x000000
+0000000B: CFF4 RJMP -0x000C ; Destination: 0x000000
+0000000C: CFF3 RJMP -0x000D ; Destination: 0x000000
+0000000D: CFF2 RJMP -0x000E ; Destination: 0x000000
+0000000E: C05B RJMP +0x005B ; Destination: 0x00006A
+0000000F: CFF0 RJMP -0x0010 ; Destination: 0x000000
+00000010: CFEF RJMP -0x0011 ; Destination: 0x000000
+00000011: CFEE RJMP -0x0012 ; Destination: 0x000000
+00000012: CFED RJMP -0x0013 ; Destination: 0x000000
+00000013: 307E CPI R23,0x0E ; 0x0E = 0b00001110 = 14
+00000014: 796D ANDI R22,0x9D ; 0x9D = 0b10011101 = 157
+00000015: 5B33 SUBI R19,0xB3 ; 0xB3 = 0b10110011 = 179
+00000016: 705F ANDI R21,0x0F ; 0x0F = 0b00001111 = 15
+00000017: 7B7F ANDI R23,0xBF ; 0xBF = 0b10111111 = 191
+00000018: 4F00 SBCI R16,0xF0 ; 0xF0 = 0b11110000 = 240
+00000019: 0F05 ADD R16,R21
+0000001A: 471F SBCI R17,0x7F ; 0x7F = 0b01111111 = 127
+0000001B: 4E01 SBCI R16,0xE1 ; 0xE1 = 0b11100001 = 225
+0000001C: 670E ORI R16,0x7E ; 0x7E = 0b01111110 = 126
+0000001D: 3E3D CPI R19,0xED ; 0xED = 0b11101101 = 237
+0000001E: 0D77 ADD R23,R7
+0000001F: 3715 CPI R17,0x75 ; 0x75 = 0b01110101 = 117
+00000020: 0908 SBC R16,R8
+00000021: 0049 NOP
+00000022: 0015 NOP
+00000023: 14F9 CP R15,R9
+00000024: F800 BLD R0,0
+00000025: 0013 NOP
+00000026: 00F3 NOP
+00000027: 0000 NOP
+00000028: 0001 NOP
+00000029: 0001 NOP
+0000002A: 00A0 NOP
+0000002B: 0000 NOP
+0000002C: 0000 NOP
+0000002D: 0000 NOP
+0000002E: 0002 NOP
+0000002F: 0002 NOP
+00000030: 004E NOP
+00000031: 0001 NOP
+00000032: 017C MOVW R14,R24
+00000033: 0050 NOP
+00000034: 0001 NOP
+00000035: 01C3 MOVW R24,R6
+00000036: 0052 NOP
+00000037: 0008 NOP
+00000038: 0004 NOP
+00000039: 0054 NOP
+0000003A: 0000 NOP
+0000003B: 94F8 CLI
+0000003C: 27EE CLR R30
+0000003D: BBEC OUT 0x1C,R30
+0000003E: E0F1 LDI R31,0x01 ; 0x01 = 0b00000001 = 1
+0000003F: BFFB OUT 0x3B,R31
+00000040: BFEB OUT 0x3B,R30
+00000041: BFE5 OUT 0x35,R30
......

Kodas ne visas tik pati pradžia . Kaip matom pradžia interupai, po to kruva nesamoniu, matyt duomenų lentėlė .. iki +0000003C: reseto jumpo adreso, po to kodas pradeda turėt kažkiokia logiką . Viskas butu kaip ir nieko bet benagrinėjant koda pastebėjau šiokių tokiu nesamoniu...

pvz atsekus vieno ir taimerių interupą randam

;Timer/Counter0 Overflow interup
+000000B3: 920A ST -Y,R0 ;SAVE REGISTERS
+000000B4: 921A ST -Y,R1
+000000B5: 936A ST -Y,R22
+000000B6: 937A ST -Y,R23
+000000B7: 938A ST -Y,R24
+000000B8: 939A ST -Y,R25
+000000B9: 93AA ST -Y,R26
+000000BA: 93BA ST -Y,R27
+000000BB: 93EA ST -Y,R30
+000000BC: 93FA ST -Y,R31 ;SAVE REGISTERS
+000000BD: B7EF IN R30,0x3F ;SAVE SREG
+000000BE: 93EA ST -Y,R30
+000000BF: E0E6 LDI R30,0x06 ; 0x06 = 0b00000110 = 6
+000000C0: BFE2 OUT 0x32,R30 ;Timer/Counter0 (8 Bits)
+000000C1: 91A00197 LDS R26,0x0197
+000000C3: 5FAF SUBI R26,0xFF ; 0xFF = 0b11111111 = 255
+000000C4: 93A00197 STS 0x0197,R26
+000000C6: 31A9 CPI R26,0x19 ; 0x19 = 0b00011001 = 25
+000000C7: F009 BREQ +0x01
...............

Pridėjau savo komentarų . Pradžia regsitru saugojimas, SREG saugojimas . viskas kaip ir logiška bet teis adresu +000000C1: pasidaro kaž kas netaip kur adresas +000000C2: ? Iš kart eina +000000C4: ..

Dar vienas pvz

Paprogramė saugot ADC duomenis į SRAM

.........
+00000080: 1FBF ADC R27,R31
+00000081: B1E4 IN R30,0x4 ;ADCL
+00000082: B1F5 IN R31,0x5 ;ADCH
+00000083: 93ED ST X+,R30 ;SAVE ADC TO SRAM
+00000084: 93FC ST X,R31
+00000085: 91A00194 LDS R26,0x0194
+00000087: 5FAF SUBI R26,0xFF ; 0xFF = 0b11111111 = 255
+00000088: 93A00194 STS 0x0194,R26

....................

po adreso +00000085: iš kart eina +00000087: . dingo +00000087:

Nu jo Avr studio v.3.56 košmariškai sena bet...

Bandžiau ir aukštesnes AVR studio versijas 4,13
...
+00000000: C03A RJMP PC+0x003B Relative jump
+00000001: CFFE RJMP PC-0x0001 Relative jump
+00000002: CFFD RJMP PC-0x0002 Relative jump
+00000003: CFFC RJMP PC-0x0003 Relative jump
+00000004: C1C3 RJMP PC+0x01C4 Relative jump
+00000005: CFFA RJMP PC-0x0005 Relative jump
+00000006: CFF9 RJMP PC-0x0006 Relative jump
...
Kodas dar šlikščiau skaitomas kur dingo absoliutūs adresai ? Užtenka tik komentarų... Kažkaip iš naujesnės versijos tikėjaus daugiau Shocked ... lyrinis nukrypimas ...
Problema ta pati. Programų atminties adresai neina išeilės. Kaip manot ? Pametamos komandos ar teisiog suadresuota neteisingai nors pati programa neva yra tvarkinga ir veikia gerai ?
Gal kas gali išbandyt su savo AVR studijo aukštesnėmversijom . Nežinau ar yra daugiau tokiu pamestuku, bet +000000C2: ir +00000087: nėra ...

Ir šeip gal kas gali parekomenduot kokį avr disasemblerį Embarassed
Rolling Eyes
 AVR *.hex Disasembleraivimas
PranešimasParašytas: 2015 04 29, 16:43 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
pabandyk IDA disasembleri

as pameginau viskas gerai atrodo ir visi kometarai automatisdkai sudedami apie registru paskirtis
 AVR *.hex Disasembleraivimas
PranešimasParašytas: 2015 04 29, 17:37 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Socrates
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
As visiskai pamirses ASM, bet lyg ir atrodo, kad i adresa rasant 16 bitu reiksme iskart uzpildomi du adresai. Visgi mikrovaldiklis 8bit. Cia gal disasemblerio gudrybe, o ne pacio AVR'o.
 AVR *.hex Disasembleraivimas
PranešimasParašytas: 2015 04 29, 18:46 Pranešti apie taisyklių pažeidimą Atsakyti su citata
BumBum
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Douch Mad . Gi rimtas ne visos komandos vienodo ilgio, kai atsimerkiau matos komandų LDS,STS opcodą ilgesni . Logikos yra... kaim adresuot antra puse komandos ( ar rodyt komandos antros pusės adresą)... Ačiū už idėja ... O IDA disasembleri reiks pažiurėt kas per padaras ...
 AVR *.hex Disasembleraivimas
PranešimasParašytas: 2015 05 02, 17:05 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
1) kaikurios komandos ilgesnes nei 1 atminties zodis
2) relative jump gali buti naudojamas switch/case atveju, kai kelioms switch reiksmems tinka tas pat case
nenusimink, kada nors ismoksi dar to assemblerio, jei tik tau to tikrai reikia
Pradėti naują temą  Atsakyti į pranešimą
 
Forumo sistema: phpBB
 „Google“ paieška forume
 Kas naujesnio?
 Naujos temos forume

Global electronic components distributor – Allicdata Electronics

Electronic component supply – „Eurodis Electronics“

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Full feature custom PCB prototype service

Sveiki ir ekologiški maisto produktai

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

„Mokslo sriuba“

www.matuok.lt - Interneto spartos matavimo sistema

Programuotojas Tautvydas – interneto svetainių-sistemų kūrimas

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

Draugiškas internetas

FS25 Tractors
Farming Simulator 25 Mods, FS25 Maps, FS25 Trucks
ETS2 Mods
ETS2 Trucks, ETS2 Bus, Euro Truck Simulator 2 Mods
FS22 Tractors
Farming Simulator 22 Mods, FS22 Maps, FS25 Mods
VAT calculator
VAT number check, What is VAT, How much is VAT
FS25 Mods
FS25 Harvesters, FS25 Tractors Mods, FS25 Maps Mods
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija
FS25 Mods
FS25 Maps, FS25 Cheats, FS25 Install Mods
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps
ATS Trailers
American Truck Simulator Mods, ATS Trucks, ATS Maps
Football Training Kit
Football Training Equipment, Football Skills, Football Training
Reklama
‡ 1999– © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Turinys | Reklama | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina
Ets2 mods, Ats mods, Beamng drive mods
allmods.net
„MokslasPlius“ – mokslui skirtų svetainių portalas
www.mokslasplius.lt
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
LTV.LT – lietuviškų tinklalapių vitrina
www.ltv.lt/technologijos/
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama