Arduino gcc ongelma

Äärimmäisen_kummallista

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.

2

138

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • 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

    1. 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? https
      Maailman menoa
      271
      2506
    2. Muistatko kun kerroin...

      että palelen..? Myös nyt on kylmä. Tahtoisin peittosi alle.
      Ikävä
      39
      1408
    3. En sitten aio sinua odotella

      Olen ollut omasta halustani yksin, mutta jossain vaiheessa aion etsiä seuraa. Tämä on aivan naurettavaa pelleilyä. Jos e
      Ikävä
      61
      1382
    4. Martina jättää triathlonin: "Aika kääntää sivua"

      Martina kirjoittaa vapaasti natiivienkusta suomeen käännetyssä tunteikkaassa tekstissä Instassaan. Martina kertoo olevan
      Kotimaiset julkkisjuorut
      22
      1166
    5. Hei, 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 change
      Ikävä
      7
      1144
    6. Kuka sinä oikeen olet

      Joka kirjoittelet usein minun kanssa täällä? Olen tunnistanut samaksi kirjoittajaksi sinut. Miksi et anna mitään vinkkej
      Ikävä
      48
      1136
    7. En vain ole riittävä

      Muutenhan haluaisit minut oikeasti ja tekisit jotain sen eteen. Joo, ja kun et varmaan halua edes leikisti. Kaikki on o
      Ikävä
      26
      1133
    8. Kellä on rumin tukka?

      Kuka on haapaveden rumin ihminen? Vinot silmät ja ikivanha mersu?
      Haapavesi
      9
      1111
    9. Oon pahoillani että

      Tapasit näin hyödyttömän, arvottoman, ruman ja tylsän ihmisen niinku minä :(
      Ikävä
      46
      1073
    10. Kuinka paljon nalle harmittaa

      Kun mä saan panna hehkua ja sä et? :)
      Ikävä
      6
      1042
    Aihe