Jos kirjoitan
asm("mov r0, #1000");
niin kääntäjä toimii. Jos kirjoitan
asm("mov r0, #1001");
niin tulee ilmoitus:
Error: invalid constant (3e9) after fixup
Onko tuo ominaisuus, bugi, jäynä tai onko minulta jäänyt jotain huomaamatta?
Rekisteriin voi kyllä ladata muistista ihan minkä luvun tahansa.
Arduino gcc ongelma
2
138
Vastaukset
- Tuskin_on_bugi
Kannattaa kaivaa prosessorin manuaali esiin ja katsoa miten tuo vakio on koodattu mov r0, ... käskyyn. Siinä todennäköisesti on jokin bitti raja. Tuo 1000 voidaan ilmaista <= 10 bitillä:
1000 = 250 << 2 (eli 8 -bit vakio 2 bittinen siirto vakio, esim. mov r0, 250, rol 2)
1000 = 125 << 3 (eli 7 -bit vakio 2 bittinen siirto vakio, esim. mov r0, 125, rol 3)
Tuota 1001 ilmaisemiseen siirtobittejä ei voi käyttää, joten vakio osan pitäisi olla 12 -bittiä. Joten todennäköisesti joku tuollainen rajoitus tulee vastaan. Eli luku 1016 on seuraava minkä voi ilmaista, (jos vakio osa 8-bittinen niin silloin 1004). - Atmel_AVR
eikös arduino ole Atmel AVR -pohjainen?
Niissä rekisteri on 8 bittiä.
Jos kääntäjä on tehty niin, että samaa rekisteriä voi kohdella joko etumerkittömänä tai etumerkillisenä, silloin hyväksyttävä arvoalue on:
-128 .. 255
Mikä tahansa tuon alueen ulkopuolinen luku pitäisi aiheuttaa virheilmoitus.
Jos kerran 1000 ei tuota virheilmoitusta, se on kääntäjän bugi.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Mitä hittoa tapahtuu nuorille miehillemme?
Mikä on saanut heidän päänsä sekaisin ja kadottamaan järjellisyytensä normaalista elämästä ja ryhtymään hörhöiksi? https2712506- 391408
En sitten aio sinua odotella
Olen ollut omasta halustani yksin, mutta jossain vaiheessa aion etsiä seuraa. Tämä on aivan naurettavaa pelleilyä. Jos e611382Martina jättää triathlonin: "Aika kääntää sivua"
Martina kirjoittaa vapaasti natiivienkusta suomeen käännetyssä tunteikkaassa tekstissä Instassaan. Martina kertoo olevan221166Hei, vain sinä voit tehdä sen.
Only you, can make this world seem right Only you, can make the darkness bright Only you and you alone Can make a change71144Kuka sinä oikeen olet
Joka kirjoittelet usein minun kanssa täällä? Olen tunnistanut samaksi kirjoittajaksi sinut. Miksi et anna mitään vinkkej481136En vain ole riittävä
Muutenhan haluaisit minut oikeasti ja tekisit jotain sen eteen. Joo, ja kun et varmaan halua edes leikisti. Kaikki on o261133- 91111
Oon pahoillani että
Tapasit näin hyödyttömän, arvottoman, ruman ja tylsän ihmisen niinku minä :(461073- 61042