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

1792

    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. Ikävöin sinua kokoyön!

      En halua odottaa, että voisin näyttää sinulle kuinka paljon rakastan sinua. Toivon, että uskot, että olen varsin hullun
      Ikävä
      51
      3725
    2. Näen jatkuvasti Sompasaunalla alastomia miehiä ja naisia

      jotka menevät siihen viereiseen rantaan myös uimaan alasti. Sompasaunat on siis Mustikkamaalla Helsingissä, ja kuljen si
      Maailman menoa
      117
      2738
    3. Kova karman laki

      Karman lain kautta pahantekijä tehdessään pahaa toteuttaa koston ja rangaistuksen sille jolle pahaa on tehty. Tämä tarko
      Hindulaisuus
      620
      2394
    4. Päivieni piristys, missä olet?

      Toit iloa ja valoa mun elämään ☀️ Nyt mennyt kohta viikko ettei ole nähty. Kaipaan nähdä sua silti ja pelkään vaikka tei
      Ikävä
      20
      2087
    5. KALAJOEN UIMAVALVONTA

      https://www.kalajokiseutu.fi/artikkeli/ei-tulisi-mieleenkaan-jattaa-pienta-yksinaan-hiekkasarkkien-valvomattomalla-uimar
      Kalajoki
      85
      1992
    6. Jos sinä olisit pyrkimässä elämääni takaisin

      Arvelisin sen johtuvan siitä, että olisit taas polttanut jonkun sillan takanasi. Ei taida löytyä enää kyliltä naista, jo
      Tunteet
      44
      1721
    7. Älä mahdollisesti ota itseesi

      En voinut tietää. Sitäpaitsi.. niin
      Ikävä
      20
      1678
    8. Helena ja Mikko Koivun ero jatkuu edelleen ja loppua ei näy.

      Voi eikä, miksi menee noin vaikeaksi avioero ja sopua ei tää ex- pari vaan saa.
      Kotimaiset julkkisjuorut
      142
      1642
    9. Millainen kaivattusi luonne on?

      Millaisia luonteenpiirteitä arvostat kaivatussa? Oletteko samanlaisia luonteeltanne?
      Ikävä
      97
      1506
    10. Ota nainen yhteyttä ja tee Tikusta asiaa?

      Niin sitten minä teen Takusta asiaa.
      Ikävä
      28
      1476
    Aihe