säter skrev:Hur ser man skillnad på om det är kompilerad kod eller Assembler?
Båda blir väl bara ettor och nollor i Epromet?
Man kan oftast identifiera att samma struktur används för funktionsanrop, ex vis spara undan ev argument på stacken, och sen i början av funktionen poppar den argumenten och sparar undan vissa register osv. Nu är det inte jättetydligt i detta exemplet, men för icke-embedded kod där man följer vissa anrops-konventioner för att kunna länka kod från olika ställen ihop osv kan man lätt avgöra ex. vis vilket programspråk något är skrivet i osv baserat på hur datastrukturer ser ut mm..
Nu går det att skriva på samma sätt manuellt med, då kan man ibland se det på att den genererade koden inte är sånt en människa skulle skriva:
Kod: Markera allt
code:0000029F mov R1, #0x61 ; 'a'
code:000002A1 mov A, R3
code:000002A2 mov @R1, A
code:000002A3 mov R1, #0x61 ; 'a'
code:000002A5 mov A, @R1
code:000002A6 mov R3, A
Den här koden sparar först värdet i R3 till till en variabel i RAM, sen ska den använda variabeln till en annan grejj och läser då ut den från RAM igen när den redan finns i registret, en människa hade nog skippat den andra utläsningen och använt R3 direkt.