Zeitschleife in einem Vorhanden Pogramm ändern??

Gast #548722
Hallo, Richtig erkannt! Es handelt sich um  ein Disassembler-Output 
Programmcode! Eigendlich müste ja die Zeitschleife nach dem Reday 
kommen!?(habe ich auskomentiert) da ich mich mit der programierun von 
PIC`s nicht auskenne wäre ich euch sehr dankbar, wenn des jemand 
hinbekommen würde.

MfG HanZ
#548734
Mühsam ernährt sich der Rückwärts-Ingenieur...
Ich hab sowas mit 6502-Programmen schon gemacht, jetzt muß der 
Texteditor mit der Suchen-und-Ersetzen-Funktion ran. Alle symbolischen 
Labels, sobald man eine vermutliche Funktion erkannt hat umbenennen, die 
Portpins nach Schaltplan soweit bekannt ebenfalls mit verständlichen 
Namen versehen, dann klärt sich das langsam. Wo ist die 
Interrupt-Routine versteckt, die kann gleich mal vom Rest getrennt 
werden.
Gast #548754
Bei Disassemblierung ist sowieso viel Nacharbeit notwendig.

Der Disassembler führt das Programm ja normalerweise nicht aus, und 
übersetzt
es, sondern geht strickt der Reihe nach. Sollten während des 
Programmcodes
Konstanten Tabellen oder ähnliches sein, werden die gleich mit übersetzt
als Befehle.
Oder macht das Dein Disassembler intelligenter?

Dirk
Gast #548838
Hallo, also mein Dissalbler Programm heißt "PicDisasm.exe" dei muss man 
grad ausfühern und den richtigen PIC auswählen.

Fangt da wo der Pfeil ist nicht die Zeitschleife an?

CALL LADR_0x00BB
    MOVLW 0x52      ; R
    MOVWF LRAM_0x22
    CALL LADR_0x010C
    MOVLW 0x65      ; e
    MOVWF LRAM_0x22
    CALL LADR_0x010C
    MOVLW 0x61      ; a
    MOVWF LRAM_0x22
    CALL LADR_0x010C
    MOVLW 0x64      ; d
    MOVWF LRAM_0x22
    CALL LADR_0x010C
    MOVLW 0x79      ; y
    MOVWF LRAM_0x22
    CALL LADR_0x010C
 -> BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BSF TMR0,5           ; !!Bank!! TMR0 - OPTION_REG
    BSF TMR0,3           ; !!Bank!! TMR0 - OPTION_REG
    BCF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    MOVLW 0x01
    MOVWF LRAM_0x42


MFG HanZ
Gast #552180
Hallo, kann mir den keiner sagen wo genau sich Zeitschleifen in diesem 
Programmcode verbergen? Und welchen Wert muss man verändern das sie 
verlängert wird?

Vielen dank

HanZ
#552197
Ich weiß schon, warum ich keinen PIC benutze, der Code ist einfach zu 
kryptisch.

Beim 8051 wärs dagegen ganz easy, da müßte man nur nach DJNZ suchen, um 
Schleifen zu finden.


Schön ist auch zu sehen, daß massig Code für irgendwelche 
Bankumschaltungen draufgeht.


Peter

P.S.:
Auch wenn ich es könnte, es widerstrebt mir, fremde Programme zu 
cracken.
Gast #552376
Hallo, ich habe nicht verlangt mit meinem letzten post, dass es jemand 
das Programm cracken soll. Wenn mir jemand zeigen könnt wie ein Timer 
oder zeitscheleife für diesen pic aufgabut ist, könnte ich es selber 
umprogen.

MFG HanZ

Persönliche Seite #552452
Ach Gott was für ein Elend! Fast eine Woche geistert das hier rum. In 
der Zeit hat sich manch einer in PIC Assembler reingeschafft...

@ HanZ

...rede mit dem Programmierer und der baut dir die Anpassung ratzfatz 
ein. Wenn der Hund die Sourven gefressen hat oder du mit dem 
Programmierer dermaßen verkracht bist...

Bist du sicher, dass es überhaupt eine Pause von 1s gibt?

Der Code sieht mir als Laien so aus, als ob es keine Pause nach dem 
Ready gibt bzw. was du als Pause interpretierst ist bereits Messzeit. 
Daran gefummelt und deine Messung wird ungenau.

Etwas Schleifenähnliches ist in der Subroutine LADR_0x00AD. Der Code 
dort wird 255*249 mal durchgeführt. Aber ich kenne die Taktrate von 
deinem PIC nicht und bin jetzt auch zu strack die Takte in der Schleife 
auszuzählen.

Du könntest auch direkt probieren nach der Ready-Ausgabe diese Schleife 
2x (2x1s Fake + 1s Original-Messzeit = 3s) einzufügen und dann schauen, 
was der Ball macht.

;   ...
    MOVWF LRAM_0x22
    CALL LADR_0x010C
    MOVLW 0x79      ; y
    MOVWF LRAM_0x22
    CALL LADR_0x010C
1
; ############# NEU ############
2
    MOVLW 0xFF
3
    MOVWF LRAM_0x24
4
    CALL LADR_0x00AD
5

6
    MOVLW 0xFF
7
    MOVWF LRAM_0x24
8
    CALL LADR_0x00AD
9
; ############# NEU ############

    BSF STATUS,RP0       ; !!Bank Register-Bank(0/1)-Select
    BSF TMR0,5           ; !!Bank!! TMR0 - OPTION_REG
    BSF TMR0,3           ; !!Bank!! TMR0 - OPTION_REG
;   ...

Allerdings wird dein Code dadurch länger und es entscheidet sich dabei, 
wie gut dein Disassembler/Assembler ist ;-)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.