Mostra notizie nelle discussioni
  • Avatar
    ☺
    Scritto da
    gengiva
    Utente privileggiato
    il 2012-03-29 11:35:30.0 alle 2012-03-29 11:35:30.0
    Trollate totali: 9100
    [halp] altg o altri
    in assembly/MIPS come razzo si scorre una matrice NxN? In lacrime
    Cercatelo con Google, ritardato! ©
    • Avatar
      ☺
      Scritto da
      altg
      utente che non utiene
      il 2012-03-29 11:50:37.0 alle 2012-03-29 11:50:37.0
      Trollate totali: 11540
      Re: [halp] altg o altri
      > in assembly/MIPS come razzo si scorre una matrice NxN? In lacrime

      Mai lavorato col MIPS, pero` in generale dipende da quali informazioni ti servono mentre la scorri. Nel caso piu` flessibile servono due indici, due incrementi e due salti condizionati. Nel meno flessibile, dove ti serve leggerla e basta e dove non c'e` nulla tra una riga e l'altra, si puo` vettorializzare la matrice, cioe` scorrere NxN celle di memoria a partire dall'indirizzo base della matrice. In L.in.oleum il primo caso sarebbe, con p come indirizzo base, A e B come indici e C e D come numero di righe e colonne:

        a = 0;
      
      "outer"
      
        b = 0;
      
      "inner"
      
        e = a;
        e * c;
        e + b;
        e + p;
        e = e [];  (legge l'elemento alla locazione E)
      
        + b;
      
        b < d ? inner;
      
        + a;
      
        a < c ? outer;
      


      molto inefficiente ma chiaro, e il secondo caso:

        a = p;
        b = c;
        b * d;
      
      "loop"
      
        e = a [];  (legge l'elemento alla locazione A)
      
        + a;
      
        a < b ? loop;
      


      Cioe`, hai problemi a innestare un ciclo dentro un altro o a indicizzare su due dimensioni? Newbie, inesperto
      • Avatar
        ☺
        Scritto da
        gengiva
        Utente privileggiato
        il 2012-03-29 11:59:09.0 alle 2012-03-29 11:59:09.0
        Trollate totali: 9100
        Re: [halp] altg o altri
        Scritto da: altg

        > Cioe`, hai problemi a innestare un ciclo dentro un altro o a indicizzare su due dimensioni? Newbie, inesperto

        Triste

        io ho dichiarato degli array del tipo

        A: .space 40
           .space 40
           .space 40
        
        [...]


        per un massimo di 10, che formano la matrice
        il problema è che non so come passare da un array all'altro con quello che in linguaggi di alto livello corrisponde al ciclo for per scorrere tutti gli elementi della matrice, sommarli spostarli ecc.

        Cercatelo con Google, ritardato! ©
        • Avatar
          ☺
          Scritto da
          altg
          utente che non utiene
          il 2012-03-29 12:06:23.0 alle 2012-03-29 12:06:23.0
          Trollate totali: 11540
          Re: [halp] altg o altri
          > > Cioe`, hai problemi a innestare un ciclo dentro un altro o a indicizzare su due dimensioni? Newbie, inesperto
          >
          > Triste
          >
          > io ho dichiarato degli array del tipo
          >
          >
          A: .space 40
          >    .space 40
          >    .space 40
          > 
          > [...]

          >
          > per un massimo di 10, che formano la matrice
          > il problema è che non so come passare da un array all'altro con quello che in linguaggi di alto livello corrisponde al ciclo for per scorrere tutti gli elementi della matrice, sommarli spostarli ecc.

          Fammi capire: A e` un'etichetta che costituisce il nome della matrice e nella matrice ci sarebbero 10 righe di 40 "spazi" (qualunque cosa siano, magari bytes)?

          Se e` cosi`, nel caso in cui non ti serve tener traccia degli indici (non ti serve sapere, mentre processi un elemento, a quali coordinate si trova), parti dall'indirizzo di A e scorri 400 bytes. Questo perche` l'allocazione di righe di 40 "spazi" ciascuna, a basso livello, e` contigua.
          • Avatar
            ☺
            Scritto da
            gengiva
            Utente privileggiato
            il 2012-03-29 12:18:34.0 alle 2012-03-29 12:18:34.0
            Trollate totali: 9100
            Re: [halp] altg o altri
            Scritto da: altg
            > > > Cioe`, hai problemi a innestare un ciclo dentro un altro o a indicizzare su due dimensioni? Newbie, inesperto
            > >
            > > Triste
            > >
            > > io ho dichiarato degli array del tipo
            > >
            > >
            A: .space 40
            > >    .space 40
            > >    .space 40
            > > 
            > > [...]

            > >
            > > per un massimo di 10, che formano la matrice
            > > il problema è che non so come passare da un array all'altro con quello che in linguaggi di alto livello corrisponde al ciclo for per scorrere tutti gli elementi della matrice, sommarli spostarli ecc.
            >
            > Fammi capire: A e` un'etichetta che costituisce il nome della matrice e nella matrice ci sarebbero 10 righe di 40 "spazi" (qualunque cosa siano, magari bytes)?
            >
            > Se e` cosi`, nel caso in cui non ti serve tener traccia degli indici (non ti serve sapere, mentre processi un elemento, a quali coordinate si trova), parti dall'indirizzo di A e scorri 400 bytes. Questo perche` l'allocazione di righe di 40 "spazi" ciascuna, a basso livello, e` contigua.

            minchia quante ne sai Imbarazzato
            si, sono bytes, quindi 40 sono 10 elementi e allora faccio un vettorone da 400 e si si ho capito ho capito
            che sbattimento sti geroglifici A bocca storta
            Cercatelo con Google, ritardato! ©
            • Avatar
              ☺
              Scritto da
              altg
              utente che non utiene
              il 2012-03-29 12:28:37.0 alle 2012-03-29 12:28:37.0
              Trollate totali: 11540
              Re: [halp] altg o altri
              > si, sono bytes, quindi 40 sono 10 elementi e allora faccio un vettorone da 400 e si si ho capito ho capito

              Gia`. Vettorializzi la matrice. E se ti serve anche tener traccia degli indici di riga e colonna, li imposti come contatori e li incrementi a ogni iterazione del rispettivo ciclo.

              [vado a lavorare in garage]
<softv>

Pagina generata in 156 millisecondi

Utenti attivi: 14 nell'ultimo minuto, 23 negli ultimi cinque minuti, 44 negli ultimi 15 minuti