Citat:
bogdan.kecman: pazi ne znam kako radi proton ali sam gledao neke kompajlere kojima kada ti setujes varijablu na neku lokaciju bas tako izgleda asm - kao da je neka "sistemska" varijabla na tom mestu, ali to je u stvari "ta tvoja" ..
Ne znam još ni ja kako tačno radi, ali definitivno ovde nije takav slučaj, mada bi mi odgovaralo da jeste. Evo i konkretnog slučaja:
PROTON kod:
Code:
Dim c1 As Byte At 32
Dim c2 As Byte At 33
Dim c3 As Byte At 34
Dim c4 As Byte At 35
A evo i .asm koda:
Code:
PP0 = 32 ; Evo, ovu i sledeće 3 sistemske promenljive je smestio na isu adresu kao i moje c1 do c4
PP0H = 33
PP1 = 34
PP1H = 35
PP2 = 36
PP2H = 37
PP3 = 38
PP3H = 39
FSRSAVE = 124
PSAVE = 125
SSAVE = 126
WSAVE = 127
C1 = 32 ; Evo ga preklapanje
C2 = 33
C3 = 34
C4 = 35
A evo i dela koda iz istog tog .asm-a u kome se vidi da se PP0 i PP0H koriste kao pomoć pri izdvajanju cifara naredbom DIG; jasno se vidi
da u PP0H i PP0 smešta vrednost promenljive ALARM_HI (tipa word) iz koje izdvaja cifru, čime promeni sadržaj C1 i C2 :
Code:
F1_000841 EQU $ ; IN [OBRTOMER_V5.BAS] C4=ALARM_HI DIG 3
MOVF ALARM_HIH,W
MOVWF PP0H
MOVF ALARM_HI,W
MOVWF PP0
MOVLW 3
CALL DIG
MOVWF C4
To znači da ću da odustanem od prepravke ovog programa, a za ubuduće ću morati da pazim na ovakve stvari ako odlučim da ipak predjem na PROTON,
što bi zaista imalo nekoliko prednosti, ali džaba kad su ga napravili vodeći se idejom da su programeri glupi i ne znaju šta rade.
Pozdrav.
Sinisha