cdp-r.com ti è stato utile anche oggi? Offrici un caffè alle macchinette! Maggiori info qui.

Menu Utente

Iscriviti ed accedi per scrivere nel forum, scaricare materiale e tanto altro ancora!
 

ElettroForum
Benvenuto/a, Ospite
Prego Accedi o Registrati.    Recupera password
Re:Istruzione BGT, BLT, BGE, BLE (1 in linea) (1) ospiti
Appunti, Informazioni e Suggerimenti per scappottarsi l\\\'esame di Calcolatori Elettronici 1
Vai alla fine della pagina Rispondi al messaggio Preferiti: 0
Discussione: Re:Istruzione BGT, BLT, BGE, BLE
#6129
fabr86 (Utente)
Matricola
Messaggi: 15
graphgraph
Utente non in linea Clicca qui per vedere il profilo di questo utente
Istruzione BGT, BLT, BGE, BLE 10 annos, 1 mese ago  
Salve a tutti ragazzi,ho un dubbio riguardo l'istruzione BGT, BLT. La prima vuol dire branch on greater than, cioe'si deve saltare se il primo operando e'maggiore del secondo e la seconda se il primo operando e'minore del secondo.
Mi e'sorto un dubbio riguardo queste due istruzioni,poiche'quando ho scritto il programma in assembler le istruzioni funzionano, ma esattamente al contrario.Cioe'BGT salta quando il primo e'minore del secondo operando e BLT salta se il primo e'maggiore del secondo.Come mai questa cosa?
 
Segnala ad un moderatore   Loggato Loggato  
  Per scrivere in questo forum è necessario registrarsi come utenti di questo sito ed effettuare il login.
#6133
Raffaele (Utente)
In corso
Messaggi: 145
graphgraph
Utente non in linea Clicca qui per vedere il profilo di questo utente
Re:Istruzione BGT, BLT, BGE, BLE 10 annos, 1 mese ago  
Veramente funziona proprio al contrario, il simulatore non sbaglia in questo caso (ricordo che c'era un qualche altro bug simile da qualche parte però, forse sui numeri relativi).

Penso ti sia sfuggito il funzionamento dell'istruzione CMP da usare sempre prima dei Branch on Condition, a questo proposito nel dubbio è sempre meglio consultare il manuale del Motorola 68000.

La sintassi di CMP è: CMP [destinazione/registro generico] [sorgente/Registro dati Dn]

E il risultato è quello di calcolare [Sorgente] - [Destinazione], cioè sottrae il secondo operando al primo (non il primo al secondo) e lo status register cambia di conseguenza.
In pratica la comparazione avviene fra il secondo operando (che deve essere sempre un Registro Dati) rispetto al primo.
 
Segnala ad un moderatore   Loggato Loggato  
 
Ultima modifica: 06/03/2014 21:42 Da Raffaele.
  Per scrivere in questo forum è necessario registrarsi come utenti di questo sito ed effettuare il login.
#6137
freddy (Utente)
In corso
Messaggi: 112
graphgraph
Utente non in linea Clicca qui per vedere il profilo di questo utente
Re:Istruzione BGT, BLT, BGE, BLE 10 annos, 1 mese ago  
scusate se mi intrometto..ma se ad esempio mi chiede questo:
dato un vettore verificare che gli elementi sono tutti parti come devo fare??usare la btst non penso sia corretto perchè quest'ultima mi indica la posizione del bit se è pari o dispari..quindi comefaccio?
grazie mille
 
Segnala ad un moderatore   Loggato Loggato  
  Per scrivere in questo forum è necessario registrarsi come utenti di questo sito ed effettuare il login.
#6139
Raffaele (Utente)
In corso
Messaggi: 145
graphgraph
Utente non in linea Clicca qui per vedere il profilo di questo utente
Re:Istruzione BGT, BLT, BGE, BLE 10 annos, 1 mese ago  
Potresti usare un ciclo di loop con modalità di indirizzamento indiretto (magari autoincrementato) per controllare singolarmente i vari elementi del vettore. Per ogni elemento basta controllare solo il bit meno significativo (cioè l'ottavo, se gli elementi sono tutti byte) tramite il BTST. Infatti, semplicemente, se l'LSB è 0 allora il numero è pari, mentre sè l'LSB è 1 è dispari.
 
Segnala ad un moderatore   Loggato Loggato  
  Per scrivere in questo forum è necessario registrarsi come utenti di questo sito ed effettuare il login.
#6140
freddy (Utente)
In corso
Messaggi: 112
graphgraph
Utente non in linea Clicca qui per vedere il profilo di questo utente
Re:Istruzione BGT, BLT, BGE, BLE 10 annos, 1 mese ago  
ah non sapevo che se l LSB era 0 allora il numero era pari...
 
Segnala ad un moderatore   Loggato Loggato  
  Per scrivere in questo forum è necessario registrarsi come utenti di questo sito ed effettuare il login.
#6141
freddy (Utente)
In corso
Messaggi: 112
graphgraph
Utente non in linea Clicca qui per vedere il profilo di questo utente
Re:Istruzione BGT, BLT, BGE, BLE 10 annos, 1 mese ago  
ma come faccio a fare il BTST sul bit meno significativo?puoi farmi un esempio per favore?
Grazie
 
Segnala ad un moderatore   Loggato Loggato  
  Per scrivere in questo forum è necessario registrarsi come utenti di questo sito ed effettuare il login.
#6161
Raffaele (Utente)
In corso
Messaggi: 145
graphgraph
Utente non in linea Clicca qui per vedere il profilo di questo utente
Re:Istruzione BGT, BLT, BGE, BLE 10 annos, 1 mese ago  
Temo sia troppo tardi per rispondere visto che l'ultimo appello credo ci sia già stato, ma prima non mi è stato possibile.

Come ho già scritto e come ripete sempre la professoressa, è sempre opportuno consultare il manuale del motorola 68000, lo si può persino richiedere al docente durante la prova scritta.
Il comando BTST ha sintassi "BTST #data," (oppure " BTST Dn, " ), e il risultato è quello di testare il bit data-esimo del generico registro di destinazione (cioè per capire se il bit del numero contenuto dal registro Dn è pari o dispari).
L'LSB corrisponde sempre al bit numero zero, quindi per testare l'LSB di un registro l'istruzione è " BTST #0, "

Consiglio di consultare anche gli esempi sul sito della professoressa, per scaricarli è necessario loggarsi come studenti della facoltà: Materiale Didattico -> Calcolatori I -> Laboratorio -> [U2-05]_Esempi.zip
 
Segnala ad un moderatore   Loggato Loggato  
  Per scrivere in questo forum è necessario registrarsi come utenti di questo sito ed effettuare il login.
Vai all´inizio della pagina Rispondi al messaggio
Powered by Cdp-r.com scarica gli ultimi messaggi sul tuo computer!
Contatore della luce