Apua ohjelmaan...

assembly taitamaton

Mun pitäisi tehdä esimerkkiohjelma seuraavan ohjeen mukaan:

Laadi ARM-prosessorille assembly-kielinen ohjelma, joka lukee rekisterin r0 osoittamasta muistiosoitteesta alkaen kaksi 32-bittistä lukua ja järjestää ne se samoihin muistiosoitteisiin suuruusjärjestykseen siten, että ensimmäisessä muistiosoitteessa on suurempi luvuista. Lopuksi ohjelma asettaa rekisterin r0 arvoksi nollan, mikäli luvut olivat oikeassa järjestyksessä ja ykkösen mikäli lukujen paikkoja piti vaihtaa.


Ikinä en ole ohjelmoinut assenblyllä, joten pystyisikö joku ystävällinen sielu auttamaan tämän kanssa niin pääsisin alkuun?

5

1822

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • dgsdfg

      Ehkä tästä on apua

      ; offsetit
      LUKU1 = 0
      LUKU2 = 4

      ; siirrä registeriin r1 luku1
      r1

    • Jaaaaaaaaaaarm

      En kyllä mene takamaan toimivuutta, vaikka kääntyykin gnuarm:lla.

      --- ESIMERKKI ALKAA ---

               .data
               .text
            
         _start: .global _start
               .global main      
               b   main

         #
         # Luvut jotka järjestetään
         #

         luvut:   .word   12, 14

         #
         # Pää ohjelma joka kiertää silmukkaa kutsuen järjestä alirutiinia
         #

         main:   
               ldr   r0, =luvut
               bl   jarjesta
               b   main

         #
         # Järjestä alirutiini
         #
            
         jarjesta:
               stmia   sp, {r1, r2}
               ldr   r1, [r0]
               ldr   r2, [r0, #4]
               cmp   r1, r2
               bhi   oikea      
               str   r1, [r0, #4]
               str   r2, [r0]
               mov      r0, #1
               b   loppu
         oikea:
               mov   r0, #0
         loppu:
               ldmia   sp, {r1, r2}
               mov   pc, lr

         .end

      --- ESIMERKKI LOPPUU ---

      • sdsfkishjsl

        Pari bugi fixia ja vahan optimointia

        jarjesta:
        stmia sp!,{r1,r2,lr}
        ldmia r0,{r1-r2}
        cmp r1,r2
        movls r0,#0
        ldmlsia sp!,{r1,r2,pc}
        str r1,[r0,#4]
        str r2,[r0]
        mov r0,#1
        ldmia sp!,{r1,r2,pc)

        Eli tuon sp:n jalkeen on oltava !.


      • Jaaaaaaaaaaarm
        sdsfkishjsl kirjoitti:

        Pari bugi fixia ja vahan optimointia

        jarjesta:
        stmia sp!,{r1,r2,lr}
        ldmia r0,{r1-r2}
        cmp r1,r2
        movls r0,#0
        ldmlsia sp!,{r1,r2,pc}
        str r1,[r0,#4]
        str r2,[r0]
        mov r0,#1
        ldmia sp!,{r1,r2,pc)

        Eli tuon sp:n jalkeen on oltava !.

        En tosiaan ole ARM:ia varsinaisesta kokeillut kuin kerran harrastus mielestä, noin vuosi sitten.


    • PerttiTT

      ARMI käskykanta on vähän erilainen ja monipuolisempi kuin 'normaali' assembly.

      käskyn malli yleensä:

      KÄSKYehtoSetliput kohdeRek , 1lähdeRek, 2lähdeRek, käsky2lähdeRek:lle käskynparametri !tallennetaanko2lähdeRek

      Esim.
      LDR r6, [r4] ;lataa muistista ==( r6 = *r4;)
      LDR r4, [r0 , r2 , LSL #2] ;== ( r4 = *(r0 (r2

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Björn Wahlroos, maataloustuet lakkautettava

      Sanoo pankkimies. Mitäs persut ja muut tukinulliem perskärpäset tähän? "Wahlroos listaa kansallisen maataloustuen. – I
      Maailman menoa
      155
      3940
    2. Persut päättivät hiilivoiman kieltämisestä Suomessa

      Moni on jo unohanut kuka hyväksyi hiilivoimaloiden kieltämisen Suomessa: persut Sukupuolineutraalit liikennemerkitk
      Maailman menoa
      85
      3353
    3. Vain persut vastustivat hiilivoimaloiden alasajoa

      Persut vastusti jyrkästi hiilen kieltolakia ja on myöhemmin vaatinut hiilivoimaloiden pitämistä käytössä. He perusteliva
      Maailman menoa
      85
      2805
    4. Nalle Wahlroos ei ulise kuten Teemu Selänne sähkölaskuista

      Nalle "hah hah" nauroi saamistaan sähkötuista, kun taas Teemu-poika itkeä tirautti kovasta sähkön hinnasta. Nalle nauro
      Maailman menoa
      44
      2699
    5. Selvästi näyttää siltä, että SDP:n kannattajat hyväksyy kiusaamisen

      ja seksuaalisen ahdistelun, kun puolueen kannatus pysyy korkealla. Mitä tämä kertoo demari-äänestäjien moraalista?
      Maailman menoa
      72
      2669
    6. Kyllä nämä nyky autonakut ja autotki on heikloja

      Vuoden vanha akku, eikä inahdakaan.... Pistin vara-akun just lataukseen ja lähen sillä antamaan apuvirtaa Jos ei toimi,
      Ikävä
      24
      2411
    7. Muistattekos kuinka kokoomus ja persut vinkuivat sähkön hinnasta?

      Oppositiossa vuonna 2022, kun sähkön hinta uhkasi nousta 20 senttiin kilowattitunnilta? Nyt ovat hiiren hiljaa, kun pitä
      Maailman menoa
      140
      2342
    8. Mikä aate kaiken pahan takana?

      Se laiskistuttaa kansat, opettaa vaatimaan etuisuuksia, syleilee maailmoja eikä omaa kansaa.
      Maailman menoa
      152
      2225
    9. Päivi Räsäsen seksipaljastus loksauttaa Katja Ståhlin leuat! Elämäni biisi kohujakso tv:ssä!

      Elämäni biisi -suosikkisarjan uusinnat ovat startanneet ja nyt vuorossa on sarjan 2. jakso v. 2019. Sinisille sohville
      Suomalaiset julkkikset
      39
      2062
    10. Muistan vuosikymmenten takaa

      Toivottavasti voit hyvin ja jaksat työssäsi. Olet upea ja erinomainen ihminen, toivon kaikkea hyvää.
      Ikävä
      12
      1956
    Aihe