Wenn es noch jemanden interessiert, ich konnte das Mysterium mit diesem "1-cycle-shift right" klären:
Bascom 1.11.8.1 meckert den Shift -Befehl an (weil ihm die Variable nicht passt)
Bascom 1.11.9.2 meckert NICHT, sondern lässt den Befehl einfach aus !
Bei "Shift , D1 , Right , 3"
lädt er zwar noch r25 mit "3"
( LDI r25,0x03 --> 1 Cycle )
aber das wars's dann auch.
Ich habe mir das Programm von @mycroc übersetzt und disassembliert, weil mir die Sache seltsam vorkam, der relevante Ausschnitt ist oben.Code://----------D3 = D1 / D2 '1760 LDI XL,0x9F D3 LDI XH,0x00 ST -Y,XH ST -Y,XL LDI XL,0x97 D2 LDI XH,0x00 LDI ZL,0x87 D1 LDI ZH,0x00 CALL L_0x06A4 ADIW YL,0x0002 //------------------Shift , D1 , Right , 3 '1 LDI r25,0x03 ????? JMP L_0x011E //LOOP: .DB 0xF8, 0x94 ;.. L_0x03FE: //END RJMP L_0x03FE .DB 0x09, 0xD0, 0x0E, 0x94, 0xE5, 0x04 ;......
Wenn jemand das komplette Assembler-listen sehen will, --> sprechen






Zitieren

Lesezeichen