Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » UB8830 differenz Quelltext Bin-File » Themenansicht

Autor Thread - Seiten: -1-
000
27.04.2024, 21:37 Uhr
PIC18F2550

Avatar von PIC18F2550

Hallo,
Nach längeren suchen in meinem Reassembler habe ich eine Abweichung zwischen den Quelltext und dem Binärfile gefunden.

U883_MME_BAS.asm

Quellcode:

loc_14E:        or    reg_0F, R7
        ret




U883_MME_BAS.lst

Quellcode:

     290/     14E : 42 F7               loc_14E:    or    reg_0F, R7
     291/     150 : AF                          ret



Das spuckt mein Reassembler aus

Quellcode:

M_0141:  56 0F 8F  AND  r0F, #8Fh
  0144   A2 24     CP   r2, r4
  0146   6B 0A     JRZ  M_0152h
  0148   7C 20     LD   r7, #20h
  014A   AB 02     JRT  M_014Eh
  014C   7C 10     LD   r7, #10h
  014E   44 E7 0F  Or   r0F, r7
  0151   AF        RET



Ich denke das könnte die Ursache sein:

Quellcode:

      22/       0 : =AH                 reg_0A        equ    0Ah
      23/       0 : =CH                 reg_0C        equ    0Ch
      24/       0 : =EH                 reg_0E        equ    0Eh
      25/       0 : =FH                 reg_0F        equ    0Fh



Ob das besser ist?

Quellcode:

      22/       0 : =AH                 reg_0A        equ    10
      23/       0 : =CH                 reg_0C        equ    12
      24/       0 : =EH                 reg_0E        equ    14
      25/       0 : =FH                 reg_0F        equ    15



Das Binärfile ist 12 bytes länger als der Quelltext.list

Was ist nun richtig?
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen

Dieser Beitrag wurde am 27.04.2024 um 22:10 Uhr von PIC18F2550 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
27.04.2024, 22:39 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

Binärfile und Listing https://hc-ddr.hucki.net/wiki/doku.php/elektronik/u883/listing
passen zusammen. Da musst du deinen Reassembler anpassen:
Wenn Parameter 00..7f oder f0..ff, dann absoluter Speicherplatz, wenn e0..ef, dann Registersatz.
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
27.04.2024, 23:07 Uhr
PIC18F2550

Avatar von PIC18F2550

Binär-file weicht vom lst-file ab.
Beide in der Zip enthalten.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
28.04.2024, 14:37 Uhr
PIC18F2550

Avatar von PIC18F2550

Ich habe den Quelltext mal durch den AS gejagt und was soll ich sagen das bin ist um 12 Bytes gegenüber dem rom File zu kurz.

Ich gehe davon aus das das Rom File ein Abzug aus dem UB8830D ist und daher richtig ist.

Warum werden am Anfang diese Register extra Definiert?
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
28.04.2024, 15:02 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

ich weiß nicht, was und wie du kompilierst. ich hab eben mit einem aktuellen AS und den Sourcen von 2021 getestet, der erzeugte Rom ist 2K groß und entspricht 100% dem Original


Quellcode:

d:\hobby3\tiny\U883_MME_BAS\test>as U883_MME_BAS.asm
-------- U883_MME_BAS -----------
Assembling U883_MME_BAS.asm
PASS 1
Z8-Kürzel-Definitionen
(C) 1993 Rüdiger Mersiovsky
stddefz8.inc(57)
U883_MME_BAS.asm(1563)
PASS 2
stddefz8.inc(57)
U883_MME_BAS.asm(1563)

0.06 seconds assembly time

   1620 lines source file
      2 passes
      0 errors
      0 warnings
Deduced address range: 0x00000000-0x000007FF
U883_MME_BAS.p==>>U883_MME_BAS.bin  (2048 Bytes)
Code-Type   Segment    Start-Address  Length (Bytes) End-Address
----------------------------------------------------------------
Z8            CODE      00000000          0800       000007FF
creator : AS 1.42 Beta [Bld 249]/i386-unknown-win32

altogether 2048 bytes CODE

d:\hobby3\tiny\U883_MME_BAS\test>


--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)

Dieser Beitrag wurde am 28.04.2024 um 15:16 Uhr von volkerp editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
28.04.2024, 16:42 Uhr
PIC18F2550

Avatar von PIC18F2550

Meine Quelle ist https://hc-ddr.hucki.net/wiki/doku.php/elektronik/u883

hier gibt es aber zwei u883bas.zip zum Download.

Eventuell habe ich eine Alte version.

Werde heute Abend es mit der anderen Version probieren.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
28.04.2024, 18:33 Uhr
PIC18F2550

Avatar von PIC18F2550


Quellcode:

AS V1.42 Beta [Bld 177] - Source File U883_MME_BAS.asm - Page 1 - 4/28/2024 16:32:5


       1/       0 :                     ; reass: Volker Pohlers 02.2007/07.2021
       2/       0 :                    
       3/       0 :                    
       4/       0 :                     ;AS-Funktionen
       5/       0 :                     hi              function x,(x>>8)&255
       6/       0 :                     lo              function x, x&255
       7/       0 :                    
       8/       0 :                    
       9/       0 :                             cpu    z8601
      10/       0 :                             include    stddefz8.inc
(1)    1/       0 : =>UNDEFINED                         ifndef  stddefz8inc     ; avoid multiple inclusion
(1)    2/       0 : =1H                 stddefz8inc     equ     1
(1)    3/       0 :                    
(1)    4/       0 :                             save
(1)   49/       0 : ALL                                 restore                 ; re-allow listing
(1)   50/       0 :                    
(1)   51/       0 : [1]                                 endif            ; stddefz8inc
(1)   52/       0 :                    
      11/       0 :                             page    0
      12/       0 :                    
      13/       0 :                             org    0
      14/       0 :                             assume RP:0C0h        ; keine Optimierung durch AS!
      15/       0 :                    
      16/       0 : =4H                 reg_04        equ    4    ; Hi TRAP
      17/       0 : =5H                 reg_05        equ    5    ; Lo TRAP
      18/       0 : =6H                 reg_06        equ    6    ; Hi Adr. Basic-Programm
      19/       0 : =7H                 reg_07        equ    7    ; Lo Adr. Basic-Programm
      20/       0 : =8H                 reg_08        equ    8    ; Hi Adr. ext. Prozedurliste
      21/       0 : =9H                 reg_09        equ    9    ; Lo Adr. ext. Prozedurliste
      22/       0 : =0AH                reg_0A        equ    0Ah
      23/       0 : =0BH                reg_0B        equ    0Bh
      24/       0 : =0CH                reg_0C        equ    0Ch
      25/       0 : =0EH                reg_0E        equ    0Eh    ; BASIC-Fehler
      26/       0 :                                     ; Bit0..Bit3: Verschachtelungstiefe f. GOSUB
      27/       0 :                                     ; Bit4 = 1: GOSUB Stacküberlauf (01)
      28/       0 :                                     ; Bit5 = 1: return without gosub (02)
      29/       0 :                                     ; Bit6 = 1: Division durch Null (04)
      30/       0 :                                     ; Bit7 = 1: Integerüberlauf (08)
      31/       0 :                    
      32/       0 : =0FH                reg_0F        equ    0Fh    ; BASIC-Flags (aktueller State)
      33/       0 :                                     ; Bit 0 01: 1=ELSE
      34/       0 :                                     ; Bit 1 02: END
      35/       0 :                                     ; Bit 2 04: CONT
      36/       0 :                                     ; Bit 3 08: STOP, STEP
      37/       0 :                                     ; Bit 4 10: <
      38/       0 :                                     ; Bit 5 20: >
      39/       0 :                                     ; Bit 6 40: =
      40/       0 :                                     ; Bit 7 80:
      41/       0 :                                    
      42/       0 : =7FH                reg_7F        equ    7Fh
      43/       0 :                    
      44/       0 :                     ;reg_20h..reg53h Variablen A..Z (Doppelregister, 16 Bit)
      45/       0 :                     ;ab 54h frei nutzbar, z.B. f. Stack
      46/       0 :                    
      47/       0 :                     ; ext. Routinen
      48/       0 :                     ;saddrh    equ    0E000h    ; startadr RAM s. init10
      49/       0 :                     ;saddr    equ    812h    ; startadr ROM s. init10
      50/       0 : =815H               getch    equ    815h
      51/       0 : =818H               putch    equ    818h
      52/       0 :                    
      53/       0 :                    
      54/       0 :                     ; Register
      55/       0 : =0FEH               gpr         equ    0FEh    ; General purpose register bzw. Stackpointer, Highteil
      56/       0 :                    
      57/       0 :                     ;-----------------------------------------------------------------------------
      58/       0 :                     ;
      59/       0 :                     ;-----------------------------------------------------------------------------
      60/       0 :                    
      61/       0 : 08 00               irq0:        dw    800h
      62/       2 : 08 03               irq1:        dw    803h
      63/       4 : 08 06               irq2:        dw    806h
      64/       6 : 08 09               irq3:        dw    809h
      65/       8 : 08 0C               irq4:        dw    80Ch
      66/       A : 08 0F               irq5:        dw    80Fh





Quellcode:
PASS 2
  0000   08 00     INT0 M_0800
  0002   08 03     INT1 M_0803
  0004   08 06     INT2 M_0806
  0006   08 09     INT3 M_0809
  0008   08 0C     INT4 M_080C
  000A   08 0F     INT5 M_080F
M_000C:  31 00     SRP  #00h
  000E   3C 0F     LD   r3, #0Fh
  0010   FF        NOP
  0011   76 E3 04  TM   r3, #04h
  0014   3C FF     LD   r3, #FFh
  0016   EB 05     JR   NZ, M_001Dh
  0018   76 E3 04  TM   r3, #04h
  001B   EB 20     JR   NZ, M_003Dh
  001D   E6 F8 B6  LD   P01M, #B6h
  0020   E6 F7 08  LD   P3M, #08h
  0023   4C 08     LD   r4, #08h
  0025   5C 12     LD   r5, #12h
  0027   C2 64     LDC  r6, @r4
  0029   60 E6     COM  r6
  002B   D2 64     LDC  r4, @r6
  002D   C2 74     LDC  r7, @r4
  002F   60 E6     COM  r6
  0031   D2 64     LDC  r4, @r6
  0033   B2 67     XOR  r6, r7
  0035   31 F0     SRP  #F0h
  0037   ED E0 00  JP   NZ, M_E000h
  003A   8D 08 12  JP   M_0812h
  003D   E6        DB   E6h
  003E   F8        DB   F8h
  003F   04        DB   04h
  0040   E6        DB   E6h
  0041   F1        DB   F1h
  0042   C0        DB   C0h
  0043   0C        DB   0Ch
  0044   FF        DB   FFh
  0045   1C        DB   1Ch
  0046   FF        DB   FFh
  0047   CF        DB   CFh
  0048   56        DB   56h
  0049   E3        DB   E3h
  004A   DF        DB   DFh
  004B   46        DB   46h
  004C   E3        DB   E3h
  004D   20        DB   20h
  004E   10        DB   10h
  004F   E1        DB   E1h
  0050   10        DB   10h
  0051   E0        DB   E0h
  0052   76        DB   76h
  0053   E3        DB   E3h
  0054   04        DB   04h
  0055   6B        DB   6Bh
  0056   04        DB   04h
  0057   7B        DB   7Bh
  0058   F5        DB   F5h
  0059   8B        DB   8Bh
  005A   ED        DB   EDh
  005B   E6        DB   E6h
  005C   F8        DB   F8h
  005D   7F        DB   7Fh
  005E   8B        DB   8Bh
  005F   FE        DB   FEh
  0060   46        DB   46h
  0061   7F        DB   7Fh
  0062   18        DB   18h
  0063   E4        DB   E4h
  0064   7F        DB   7Fh
  0065   F8        DB   F8h
  0066   56        DB   56h
  0067   03        DB   03h
  0068   DF        DB   DFh
  0069   76        DB   76h
  006A   03        DB   03h
  006B   04        DB   04h
  006C   6B        DB   6Bh
  006D   FB        DB   FBh
  006E   56        DB   56h
  006F   7F        DB   7Fh
  0070   F7        DB   F7h
  0071   46        DB   46h
  0072   03        DB   03h
  0073   20        DB   20h
  0074   E4        DB   E4h
  0075   7F        DB   7Fh
  0076   F8        DB   F8h
  0077   FF        DB   FFh
  0078   BF        DB   BFh
M_0079:  28 E4     LD   r2, r4
  007B   38 E5     LD   r3, r5
  007D   AF        RET
M_007E:  02 35     ADD  r3, r5
  0080   12 24     ADC  r2, r4
  0082   4B 16     JR   V, M_009Ah
  0084   AF        RET
M_0085:  22 35     SUB  r3, r5
  0087   32 24     SBC  r2, r4
  0089   4B 0F     JR   V, M_009Ah
  008B   AF        RET
M_008C:  76 E4 80  TM   r4, #80h
  008F   6B E8     JR   Z, M_0079h
  0091   B0 E2     CLR  r2
  0093   B0 E3     CLR  r3
  0095   8B EE     JR   M_0085h
  0097   46        DB   46h
  0098   0F        DB   0Fh
  0099   80        DB   80h
  009A   46        DB   46h
  009B   0E        DB   0Eh
  009C   80        DB   80h
  009D   AF        DB   AFh
  009E   88        DB   88h
  009F   E2        DB   E2h
  00A0   B2        DB   B2h
  00A1   84        DB   84h
  00A2   9C        DB   9Ch
  00A3   02        DB   02h
  00A4   68        DB   68h
  00A5   E2        DB   E2h
  00A6   78        DB   78h
  00A7   E3        DB   E3h
  00A8   D6        DB   D6h
  00A9   00        DB   00h
  00AA   8C        DB   8Ch
  00AB   48        DB   48h
  00AC   E6        DB   E6h
  00AD   58        DB   58h
  00AE   E7        DB   E7h
  00AF   9A        DB   9Ah
  00B0   F3        DB   F3h
  00B1   68        DB   68h
  00B2   E2        DB   E2h
  00B3   78        DB   78h
  00B4   E3        DB   E3h
  00B5   B0        DB   B0h
  00B6   E2        DB   E2h
  00B7   B0        DB   B0h
  00B8   E3        DB   E3h
  00B9   AF        DB   AFh
M_00BA:  D6 00 9E  CALL M_009Eh
  00BD   BC 0F     LD   rB, #0Fh
  00BF   D0 E6     SRA  r6
  00C1   C0 E7     RRC  r7
  00C3   FB 06     JR   NC, M_00CBh
  00C5   02 35     ADD  r3, r5
  00C7   12 24     ADC  r2, r4
  00C9   4B CC     JR   V, M_0097h
  00CB   10 E5     RLC  r5
  00CD   10 E4     RLC  r4
  00CF   CB 04     JR   NV, M_00D5h
  00D1   42 67     Or   r6, r7
  00D3   EB C2     JR   NZ, M_0097h
  00D5   BA E8     DJNZ M_00BFh
M_00D7:  48 E2     LD   r4, r2
  00D9   58 E3     LD   r5, r3
  00DB   10 E8     RLC  r8
  00DD   7B B2     JR   C, M_0091h
  00DF   AF        RET
M_00E0:  D6 00 9E  CALL M_009Eh
  00E3   9C 10     LD   r9, #10h
  00E5   CF        RCF
  00E6   B0 EA     CLR  rA
  00E8   B0 EB     CLR  rB
  00EA   10 E7     RLC  r7
  00EC   10 E6     RLC  r6
  00EE   10 EB     RLC  rB
  00F0   10 EA     RLC  rA
  00F2   7B 0A     JR   C, M_00FEh
  00F4   A2 4A     CP   r4, rA
  00F6   BB 0B     JR   UT, M_0103h
  00F8   7B 04     JR   C, M_00FEh
  00FA   A2 5B     CP   r5, rB
  00FC   BB 05     JR   UT, M_0103h
  00FE   22 B5     SUB  rB, r5
  0100   32 A4     SBC  rA, r4
  0102   DF        SCF
  0103   9A E5     DJNZ M_00EAh
  0105   98 E4     LD   r9, r4
  0107   42 95     Or   r9, r5
  0109   6B 0A     JR   Z, M_0115h
  010B   10 E7     RLC  r7
  010D   10 E6     RLC  r6
  010F   28 E6     LD   r2, r6
  0111   38 E7     LD   r3, r7
  0113   8B C2     JR   M_00D7h
  0115   D6        DB   D6h
  0116   01        DB   01h
  0117   0F        DB   0Fh
  0118   46        DB   46h
  0119   0E        DB   0Eh
  011A   40        DB   40h
M_011B:  46 0F 80  Or   r0F, #80h
  011E   AF        RET
M_011F:  D6 00 E0  CALL M_00E0h
  0122   88 E2     LD   r8, r2
  0124   28 EA     LD   r2, rA
  0126   38 EB     LD   r3, rB
  0128   8B AD     JR   M_00D7h
M_012A:  42 24     Or   r2, r4
  012C   42 35     Or   r3, r5
  012E   AF        RET
M_012F:  52 24     AND  r2, r4
  0131   52 35     AND  r3, r5
  0133   AF        RET
M_0134:  B2 24     XOR  r2, r4
  0136   B2 35     XOR  r3, r5
  0138   AF        RET
M_0139:  D6 00 79  CALL M_0079h
  013C   60 E2     COM  r2
  013E   60 E3     COM  r3
  0140   AF        RET
  0141   56        DB   56h
  0142   0F        DB   0Fh
  0143   8F        DB   8Fh



Kaum hatt man die richtige Zip ist alles wieder OK

Volker kannst Du die fehlerhafte zip auf deiner Webseite entfernen?
In der 2. steht ja alles wichtige drinn.

Danke.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek