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

1778

    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. Olet minua

      vanhempi, mutta se ei vaikuta tunteisiini. Tunnen enemmän kuin ystävyyttä. Olo on avuton. Ikävöin koko ajan. Yhtäkkiä va
      Ikävä
      132
      2953
    2. Ruumis ojassa

      Kukahan lie ollu, mistä lie löydetty. No ikävä tataus.
      Oulainen
      6
      1341
    3. Mies pyysi rahaa

      Jälkikäteen kun tarjosi kyydin yhteisestä harrastuksesta kotiini. Mitä vi**... Ei ihastunut mies noin toimi?
      Ikävä
      220
      1296
    4. Jos tapaisimme uudelleen?

      niin luuletko että mikään muuttuisi vai toistuuko meidän historia? Ehkä vähän eri tavalla mutta samoin tuloksin J
      Ikävä
      70
      1171
    5. Mitä piirteitä rakastat

      Eniten kaivatussasi?
      Ikävä
      44
      1129
    6. 37
      1001
    7. Mites nyt suu pannaan

      Kitkiöjoki ja Järvinen solmivat Attendon/Terveystalon kanssa sopimuksen, jonka mukaan sopimuksen irtisanomisoikeus on va
      Sysmä
      38
      991
    8. Taas Lieksassa tyritty

      Suomalaisten kansallismaisemaa juntit pilaamassa. Nuori tyttö kaupunginjohtajana ei ole sen viisaampi. *S-ryhmän hanke
      Lieksa
      133
      947
    9. Hän on niin

      Hyvännäköinen. Vaikea vastustaa
      Ikävä
      47
      944
    10. Nähdäänkö ensi viikolla

      paikassa joka alkaa samalla kirjaimella kuin etunimesi? Ikävä on sinua. Fyysistä läsnäoloasi.
      Ikävä
      36
      867
    Aihe