Zeitschleife in einem Vorhanden Pogramm ändern??

Gast #548722
Lesenswert?
• ▲
▼
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
Lesenswert?
• ▲
▼
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
Lesenswert?
• ▲
▼
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
Lesenswert?
• ▲
▼
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
#552197
Lesenswert?
• ▲
▼
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
Lesenswert?
• ▲
▼
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
Lesenswert?
• ▲
▼
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren