ACCEDI

Password dimenticata?

×
Seguici su Instagram Feed RSS Seguici su YouTube
Pagina 1 di 2 12 UltimaUltima
Visualizzazione risultati da 1 a 10 su 14

[Programmazione] Pillole di Assembler MIPS

  1. #1
    Tyler Durden
    Uomo 36 anni
    Iscrizione: 6/10/2007
    Messaggi: 16,094
    Piaciuto: 523 volte

    Predefinito [Programmazione] Pillole di Assembler MIPS

    ho un bisogno disperato di aiuto per capire queste righe:


    .data



    parola: .word 1024

    .text

    .globl main

    main:

    lw $t0, parola
    li $t1, 1
    sll $t1, $t1, 10
    and $t2, $t0, $t1
    srl $t2, $t2, 10

    li $v0, 1
    move $a0, $t2
    syscall
    li $v0, 10
    syscall
    la parte che mi interessa è quella in blu.. il programma stampa un bit della parola word.. ma non capisco in alcun modo come cacchio faccia

  2. #2
    obo
    .
    35 anni
    Iscrizione: 23/9/2005
    Messaggi: 35,505
    Piaciuto: 122 volte

    Predefinito

    carica dalla memoria la "parola" (dato definito da te) e la salva in $t0
    in questo caso a parola è definito il valore 1024 che in binario è 10000000000
    carica 1 in $t1
    sposta a sinistra di 10 posizioni il contenuto del registro $t1 e lo salva in $t1 (quindi $t1 contiene 10000000000)
    esegue un and logico tra $t0 e $t1 e lo salva in $t2
    10000000000 & 10000000000 = 1000000000
    sposta a destra di 10 posizioni il contenuto, i bit spostati vengono "persi" e quindi rimane solamente il valore 1

    sarà che neppure io sono ferrato in assembly mips, però dovrebbe fare così
    se tu carichi 1 in $t0 ottieni 1, se carichi 0 in $t0 ottieni 0 (0 & 1 = 0; 1 & 1 = 1)

  3. #3
    Tyler Durden
    Uomo 36 anni
    Iscrizione: 6/10/2007
    Messaggi: 16,094
    Piaciuto: 523 volte

    Predefinito

    Quote Originariamente inviata da obo Visualizza il messaggio
    carica dalla memoria la "parola" (dato definito da te) e la salva in $t0
    in questo caso a parola è definito il valore 1024 che in binario è 10000000000
    fin qui ok

    carica 1 in $t1

    sposta a sinistra di 10 posizioni il contenuto del registro $t1 e lo salva in $t1 (quindi $t1 contiene 10000000000)


    ecco perchè fa questo?? che senso ha caricare 1 e spostare il tutto di 10 posizioni a destra??

    esegue un and logico tra $t0 e $t1 e lo salva in $t2
    10000000000 & 10000000000 = 1000000000
    sposta a destra di 10 posizioni il contenuto, i
    bit spostati vengono "persi" e quindi rimane solamente il valore 1
    che significato ha un and logico tra il valore parola e un uno spostato di 10 posizioni a destra?
    cioè perchè farlo?

    sarà che neppure io sono ferrato in assembly mips, però dovrebbe fare così
    se tu carichi 1 in $t0 ottieni 1, se carichi 0 in $t0 ottieni 0 (0 & 1 = 0; 1 & 1 = 1)
    quello che dico io è .. se deve stampare un bit perchè non shiftare la parola e basta?

  4. #4
    obo
    .
    35 anni
    Iscrizione: 23/9/2005
    Messaggi: 35,505
    Piaciuto: 122 volte

    Predefinito

    non lo so tech che senso ha questo programma. probabilmente è un esercizio stupido didattico per introdurre qualcosa come le maschere di bit. boh

  5. #5
    Tyler Durden
    Uomo 36 anni
    Iscrizione: 6/10/2007
    Messaggi: 16,094
    Piaciuto: 523 volte

    Predefinito

    ecco, le maschere di bit.. hai qualche risorsa, qualche link.. qualsiasi cosa dove possa apprendere cosa diamine sono e come si usano?



    io ho solo roba in inglese -.-

  6. #6
    obo
    .
    35 anni
    Iscrizione: 23/9/2005
    Messaggi: 35,505
    Piaciuto: 122 volte

    Predefinito

    a parte appunti sparsi non ho molto.
    prova a leggere qui Aritmetica binaria in C - PtLUG Wiki (comunque se cerchi maschere di bit su google qualcosa trovi, più che altro in C, ma non ci vuole molto a scriverlo in assembly )

  7. #7
    pls Paperoga
    36 anni
    Iscrizione: 27/3/2007
    Messaggi: 10,322
    Piaciuto: 2197 volte

    Predefinito

    nooooooooooooooo mi sono perso un grandissimo topic sull'assembler..


    meno male quanto lo odio!

  8. #8
    Tyler Durden
    Uomo 36 anni
    Iscrizione: 6/10/2007
    Messaggi: 16,094
    Piaciuto: 523 volte

    Predefinito

    se vuoi dare il tuo contributo sei ancora in tempo

  9. #9
    pls Paperoga
    36 anni
    Iscrizione: 27/3/2007
    Messaggi: 10,322
    Piaciuto: 2197 volte

    Predefinito

    mmmm... guarda, dopo 3 anni di assembler posso dirti che ho volutamente rimosso ogniqualsivoglia traccia di esso

  10. #10
    Vivo su FdT Loller156
    Uomo 34 anni da Lecco
    Iscrizione: 13/8/2007
    Messaggi: 4,944
    Piaciuto: 1612 volte

    Predefinito

    che brutto sto assembly...

    io conosco un'altra versione *_*

Pagina 1 di 2 12 UltimaUltima

Discussioni simili

  1. Assembly Mips
    Da obo nel forum Internet e computer
    Risposte: 0
    Ultimo messaggio: 2/12/2009, 10:21
  2. Programmazione
    Da dragoberto nel forum Internet e computer
    Risposte: 38
    Ultimo messaggio: 15/7/2009, 12:14
  3. Due pillole in un giorno
    Da Cutty Sark nel forum Contraccezione, malattie e visite
    Risposte: 7
    Ultimo messaggio: 5/3/2009, 19:18
  4. programmazione televisiva talebana
    Da Scottish nel forum Barzellette e testi divertenti
    Risposte: 14
    Ultimo messaggio: 27/11/2008, 21:24
  5. problema in programmazione
    Da Zero-Point nel forum Scuola, università, lavoro
    Risposte: 15
    Ultimo messaggio: 21/12/2006, 13:25