Aiuto Assembly postato il 26/03/2009 12:34:33 nel forum programmazione, gdrcd, open source, hosting
Ciao a tutti, come se non bastasse il Java, adesso sono immerso nello studio dell'assembly. Ho un problema con un esercizio.
L'esercizioo è questo:
Dato un vettore di interi e data una variabile che contiene il numero di elementi del vettore, entrambi dichiarati e inizializzati come dati statici del programma, scrivere in ouput "ordinato!" se gli elementi del vettore sono ordinati in ordine crescente, e "non ordinato!" altrimenti.
So che devo confrontare ogni elemento dell'array col precedente e se è minore scrivere non ordinato e invece se nessuno si trova minore scrivere ordinato. Ma non riesco proprio a trovare le istruzioni adatte per farlo. In ci sarebbe facile, in java pure pure, ma in assembly proprio non mi riesce, chi mi può dare una mano?
Grazie
Pagine → 1
26/03/2009 12:52:20
Uhm, se non ricordo male le istruzioni assembly cambiano a seconda delle famiglie di processori che si considerano. Ad ogni modo, per un programma del genere ti bastano pochissime istruzioni e altrettanto pochi registri (oltre quelli già inizializzati coi dati del vettore).
Secondo me si potrebbe prendere gli elementi del vettore due alla volta (quindi in due registri di confronto) e fare un'istruzione tipo "set greater than" (la cui forma è SGT Rd R1 R2) il cui risultato va inserito in un altro registro(sarà semplicemente un valore si/no), dopodichè fai un bel salto condizionato. Se la condizione è verificata vuol dire che il primo elemento è più grande del secondo, e quindi puoi fare il jump all'istruzione che richiama "non ordinato", altrimenti continui, sposti il secondo dei due registri su cui avevi chiamato la SGT nel primo dei due registri di confronto e nel secondo registro richiami il prossimo elemento del vettore, il tutto finchè non arrivi alla locazione di memoria pari a:
N*dim_dato;
dove N è il numero degli elementi del vettore e dim_dato è la dimensione in byte del tipo di dati da cui il vettore è composto(4 per interi normali, 8 per double, ecc ecc). Se la condizione di cui sopra non è verificata nemmeno una volta vuol dire che il vettore è ordinato.
Spero di non aver detto baggianate, ma l'esame di calcolatori l'ho dato più di un anno fa :-D
26/03/2009 13:39:32
prima di tutto devi capire quanto è grande il vettore, avendo la grandezza la dividi per il numero di byte che occupa il tipo dell'array e così trovi il numero di elementi. Poi lo scorri inserendo un pò di jump con le condizioni che ti servono (jump è messo a caso visto che non so quale assembly usi)
26/03/2009 13:44:07
27/03/2009 01:51:52
27/03/2009 09:27:38
BEQ e BNEZ sono le istruzioni di salto condizionato, come fanno a non servirgli?
27/03/2009 15:00:55
27/03/2009 18:36:07
Nel MIPS c'è anche la Jump, ma è il salto incondizionato, per fare salti condizionati solo la Branch equal/not equal, almeno queste conosco io.
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
Western Redemption Gdr: Follia e Sangue nella Frontiera
I dati del generatore di rank sono stati aggiornati!
Lineage II → Entra in uno sconfinato mondo fantasy dominato da razze in contrasto tra loro. Scatena i tuoi poteri in uno dei Mmo più famosi al mondo!
Ex Gratia GDR: Finale di Stagione 2025 pt. 1 | Ouverture
just a girl ha recensito Nyx Insight - Project S.E.T.
Salvation GDR: [Meccaniche] Punti anomalia
The Coven: The Coven in soldoni
Storie di Agarthi → Un Varco si apre davanti a te, un mondo tra i mondi è a portata di mano. Lasciati alle spalle le certezze, inizia l'avventura!
La Tana del Ladro: L'Eco Perduto del Tuono - Conclusione
RAID Shadow Legends: Chimera, Bug e Missioni Avanzate!
Entropia Universe: Sbarchiamo su Steam!
AlterEgo: L'incubo di pietra - La conquista del Castello
Crossout → Tuffati nel mondo di Crossout, il gioco MMO d'azione post apocalittico! Costruisci le tue speciali macchine da combattimento!
The Coven: Western Party Drama
anima ha aperto un annuncio di ricerca: Kingdom Hearts GDR ricerca Grafico
Sea of Conquest: Felice notte di mezza estate! 💖
World of Warship: Torna Blue Archive: preparatevi all'estate!
Storie di Agarthi → Un Varco si apre davanti a te, un mondo tra i mondi è a portata di mano. Lasciati alle spalle le certezze, inizia l'avventura!
Terre di ARES - Recensione del gdr online Terre di ARES. Scopri assieme a noi i punti di forza del gioco..
Tipi di Gdr - Quante tipologie di giochi di ruolo esistono? Scopriamolo assieme!
Le Contee di Anthem - Intervista al gestore di Contee di Anthem. La via di mezzo tra il GdR e il Browser Game!
Luca Ferrara - Intervista al creatore di Star Trek Genesis...
Living History - In Italia il primo evento tra Living History e Gioco di Ruolo Storico dal Vivo!
Realismo vs. Genere - Quando la realtà influenza il gioco: spesso i giochi di ruolo simulano meglio generi fantasy/horror che la vita reale!
X-Man City - Recensione del GDR ambientato nell'universo Marvel dei mutanti
Le Quattro Terre - Ben due gdr, molto diversi tra loro ma entrambi inspirati alle opere del caro Terry Brooks