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.
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 ;......
Ich habe mir das Programm von @mycroc übersetzt und disassembliert, weil mir die Sache seltsam vorkam, der relevante Ausschnitt ist oben.
Wenn jemand das komplette Assembler-listen sehen will, --> sprechen
Lesezeichen