Sida 1 av 1
Konvertera 68HC11 assembler till C-kod
Postat: 9 juni 2011, 15:23:53
av vfr
Finns det något program, helst fritt tillgängligt, för att konvertera 68HC11 assemblerkod på källkodsnivå till C-kod? Tips mottages tacksamt!
Re: Konvertera 68HC11 assembler till C-kod
Postat: 9 juni 2011, 19:19:28
av monstrum
Konvertera assembler till C-kod? Kan inte minnas att jag någonsin sett ett sådant verktyg för någon platform.
Assembler på källkodsnivå? Vad innebär det? Eller rättare sagt, hur är det annars?
Re: Konvertera 68HC11 assembler till C-kod
Postat: 9 juni 2011, 19:27:03
av AndLi
http://iroczone.com/forums/viewtopic.php?f=9&t=3574
Vågar du prova exen? man kanske skulle köra en decompiler på den först

Re: Konvertera 68HC11 assembler till C-kod
Postat: 9 juni 2011, 22:40:38
av blueint
Kör den i virtuellbox?
Re: Konvertera 68HC11 assembler till C-kod
Postat: 9 juni 2011, 22:45:27
av TomasL
Till flödeschema har jag sett, men till C mm tror(vet) jag faktiskt är totalt omöjligt.
Re: Konvertera 68HC11 assembler till C-kod
Postat: 9 juni 2011, 23:09:48
av AndLi
Lyckas man få till ett flödesdiagram bör man ju kunna generera C från den.
Vi tittade på generatorer som skulle generera C kod från SDL , de skapade kod, men det är inget man går in och ändrar i efteråt. Men kompilerbar C kod var det, och jag har sett andra program göra samma sak från Asm. Man ska inte förvänta sig någon kod som liknar det man stoppar in dock!
I vårt fall slutade det med att jag fick bli generatorn och genererade C kod från SDL diagram i månader....
Re: Konvertera 68HC11 assembler till C-kod
Postat: 9 juni 2011, 23:19:50
av TomasL
Jag vill påstå att det är omöjligt, eftersom den genererade koden är kompilatorberoende, olika kompilatorer löser samma sak på olika sätt.
Till flöde, inga problem, det är lätt.
Därifrån, gäller manuell översättning.
vfr, har ni tappat bort koden?
Re: Konvertera 68HC11 assembler till C-kod
Postat: 10 juni 2011, 09:32:25
av labmaster
Det är lite komplicerat att skriva en översättare från assembler till C. Programkoden blir inte särskilt optimal. Det går snabbare och blir bättre om man först sätter sig in i vad de olika programdelarna gör och sedan skriver ett nytt program i C.
Är assemblerprogrammet väldigt långt så är det bättre att lära sig vad "apparaten" gör och skriva ett helt nytt program.
Re: Konvertera 68HC11 assembler till C-kod
Postat: 10 juni 2011, 09:44:06
av 4kTRB
Jag höll på med assemblerprogrammering av 68000 och
skrev strukturerad assembler med Pascal-syntax för
olika funktioner och då blir det kanske lättare att
översätta men ett assemblerprogram kan ju se ut
i princip hur som helst och måste i princip vara
jättesvårt att få ett översättningsprogram att begripa.
Re: Konvertera 68HC11 assembler till C-kod
Postat: 10 juni 2011, 22:02:22
av vfr
Hehe. Det verkar bara vara labmaster som fattar vad det handlar om. Inte alls att göra om kompilerad kod till källkod, utan att göra om original assemblerkod till motsvarande kod i portabel C. Det är absolut inget omöjligt. Kan man simulera en processorarkitetktur i nästan realtid, så nog sjutton kan man konvertera koden "vid sidan om" utan några tidskrav. Jag håller med labmaster att det förmodligen inte blir speciellt optimalt. Om man å andra sidan har assemblerkod som är vältestad och man kan lita på konverteraren i hög grad, så skulle man få kod som är relativt felfri utan stor felsökningsinsats. Det hade definitivt varit intressant att sett resultet från en sådan konverter och gjort en bedömning av det.
Om inte annat så kan man ju använda sig av det att titta på om man själv skriver om koden "för hand". Kanske inte då som facit, utan mer för att ge nya infallsvinkar på speciella ställen.
Re: Konvertera 68HC11 assembler till C-kod
Postat: 10 juni 2011, 22:17:01
av Icecap
Jag har varit i ung. samma sits, jag övertog ett projekt som dels var hardware-bloated och dels hade mjukvara i BASIC + assembler. Jag skulle konvertera till C och det hela var enklare att skriva från grunden, dock baserat på ursprungs källkoden.
Det var bara att sätta sig och leta igenom och förstå funktionsblock för att sedan skriva dom i C. På köpet hittade jag ett antal fel som hade plågat projektet men det var ju under optimeringen det visade sig.
Jag gjorde så att jag kopierade all ursprunglig källkod in i en C-fil och kommenterade bort BASIC/Assembler-raderna eftersom jag skrev dom i C. Subrutiner fick namn osv och till slut hade jag ett program som tåldes att tittas på. Då allt var skrivit och kompilern klarade biffen utan att gnälla raderade jag alla delar av den gamla källkod.
Det var ett styvt jobb, tog ett par veckor men sedan var saken biff.