Torna indietro   Hardware Upgrade Forum > Hardware Upgrade > News

Recensione Borderlands 4, tra divertimento e problemi tecnici
Recensione Borderlands 4, tra divertimento e problemi tecnici
Gearbox Software rilancia la saga con Borderlands 4, ora disponibile su PS5, Xbox Series X|S e PC. Tra le novità spiccano nuove abilità di movimento, un pianeta inedito da esplorare e una campagna che lascia al giocatore piena libertà di approccio
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
NXTPAPER 60 Ultra è il primo smartphone con tecnologia NXTPAPER 4.0 per il display, un ampio IPS da 7,2 pollici. Con finitura anti-riflesso, processore MediaTek Dimensity 7400, fotocamera periscopica e modalità Max Ink per il detox digitale, NXTPAPER 60 Ultra punta a essere il riferimento tra gli smartphone pensati per il benessere degli occhi.
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Questo mouse ultraleggero, con soli 36 grammi di peso, è stato concepito per offrire un'esperienza di gioco di alto livello ai professionisti degli FPS, grazie al polling rate a 8.000 Hz e a un sensore ottico da 33.000 DPI. La recensione esplora ogni dettaglio di questo dispositivo di gioco, dalla sua agilità estrema alle specifiche tecniche che lo pongono un passo avanti
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-05-2016, 06:54   #41
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Da questo punto di vista la programmazione a oggetti non è affatto diversa da quella strutturata, funzionale, logica, etc.: sono tutte "aliene" alla macchina, che interpreta ed esegue soltanto istruzioni che riconosce nel suo particolare formato (ISA).

La OOP consente "semplicemente" (!) di astrarre il codice in maniera diversa, ma sotto sotto l'implementazione fa uso di meccanismi come la VMT, che è implementata con un paio di istruzioni macchina (una "load" per leggere il puntatore alla VMT, e una "call" per leggere e saltare all'indirizzo del metodo virtuale selezionato. Per lo meno per x86/x64. Altre ISA possono richiedere più istruzioni).

Detto in altri termini, la VMT altri non è che la classica tabella di puntatori a funzione che viene usata nei linguaggi di programmazione strutturati. Per cui se fosse "indigesta" / "aliena" alla macchina la prima, parimenti lo è anche la seconda.

Per cui le obiezioni fatte alla OOP sono riconducibili a persone che non hanno sviluppato l'adeguata forma mentis per destreggiarla, essendo abituate soltanto al paradigma che hanno imparato e che è l'unico che conoscono. La classica paura del nuovo, insomma.
Quote:
Originariamente inviato da Vi7o Guarda i messaggi
Le macchine leggono solo il Linguaggio Macchina(binario), che poi "leggono" schede perforate(in binario) o listati(in binario) o cd(in binario) o pendisk(in binario) o nastri(in binario), dipende solo dall'interfaccia di lettura della suddetta macchina

Quindi in un ipotetica macchina che ha due ingressi di lettura:
1 - linguaggio macchina
2 - assembly

nel primo caso il codice sarà letto al volo, nel secondo sarà letto in assembly e tradotto in linguaggio macchina
E cosa cambia? Dev'essere tradotto, per l'appunto, perché il linguaggio macchina è, per definizione, un linguaggio che viene usato per rappresentare qualcosa che sarà poi tradotto nei grezzi bit (il codice oggetto).

Per cui ancora no: le macchine non "leggono" il linguaggio macchina. Leggono il prodotto della traduzione in codice oggetto di un sorgente scritto in linguaggio (di cui quello macchina è uno dei tanti).
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 27-05-2016, 13:34   #42
Vi7o
Member
 
Iscritto dal: Oct 2011
Messaggi: 146
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
E cosa cambia? Dev'essere tradotto, per l'appunto, perché il linguaggio macchina è, per definizione, un linguaggio che viene usato per rappresentare qualcosa che sarà poi tradotto nei grezzi bit (il codice oggetto).
Per cui ancora no: le macchine non "leggono" il linguaggio macchina. Leggono il prodotto della traduzione in codice oggetto di un sorgente scritto in linguaggio (di cui quello macchina è uno dei tanti).
cambia invece la sequenza binaria di linguaggio macchina viene direttamente trasformata in impulsi elettrici, se si tratta di una macchina elettrica,
Es.se premo l'interruttore di una lampadina sto eseguendo il linguaggio macchina di quella lampadina (mappato su 1bit) e con 2 sole istruzioni(0 spento, 1 acceso), se ci fosse un controller prima dell'interruttore che deve interpretare o compilare "accendi" e "spegni" le cose cambiano

allo stesso modo in assembly devi passare per l'Assembler(Livello1) che è un'altra macchina che sta al disopra della macchina fisica(Livello0) e ha il compito di compilare il codice in binario

che poi l'Assembler produca un programma oggetto in binario non significa niente, domani puoi inventarti un linguaggio di altissimo livello che produca un programma oggetto in binario, diverso è se scrivi il programma oggetto in binario direttamente(qui non ci sono interpreti o compilatori)

Negli anni 40 si scriveva direttamente in codice binario poi siccome non era molto umano si è creata un'altra macchina astratta l'assembler che aveva il compito di facilitare il compito del programmatore, sino ad arrivare ad oggi dove si sono sovrapposte sempre più macchine astratte
Vi7o è offline   Rispondi citando il messaggio o parte di esso
Old 27-05-2016, 18:25   #43
Italia 1
Senior Member
 
L'Avatar di Italia 1
 
Iscritto dal: Jan 2006
Città: Osimo (AN)
Messaggi: 3675
Quote:
Originariamente inviato da madnesshank Guarda i messaggi
Un sistema così antiquato è molto più difficile da hackerare, e poi non si aggiorna automaticamente a Windows 10
Verissimo ! Vallo a trovare un floppy da 8"
__________________
PC "wallet" TR1950x-ROG Zenith Extreme-7970-16GB DDR4 2133 - PC "soffitta" Ryzen9 5950x-Msi Carbon X570-6900xt-32GB DDR4 3000 - PC "camera" Ryzen9 3900x-Crosshair VI Hero-6900xt-32GB DDR4 3000
Italia 1 è offline   Rispondi citando il messaggio o parte di esso
Old 27-05-2016, 18:27   #44
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
@Vi7o: ancora una volta stai mischiando codice oggetto (binario) con linguaggio macchina. Sono due cose diverse, e il primo rimane il risultato della compilazione/traduzione di un sorgente scritto col secondo.

Se si chiama LINGUAGGIO, ci sarà un motivo, no? E se l'altro si chiama codice oggetto (o binario), idem.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2016, 01:00   #45
tuttodigitale
Senior Member
 
Iscritto dal: Sep 2010
Messaggi: 4370
Quote:
Originariamente inviato da Vi7o Guarda i messaggi
allo stesso modo in assembly devi passare per l'Assembler(Livello1) che è un'altra macchina che sta al disopra della macchina fisica(Livello0) e ha il compito di compilare il codice in binario
l'unica differenza tra assembly e il linguaggio macchina, è solo la rappresentazione....una istruzione in assembly equivale ad un'istruzione in linguaggio macchina, c'è una relazione uno a uno...l'unica differenza, che invece di scrive una sequenza di uno e di zeri (una istruzione x86 può essere lunga 120 bit, ed è facile sbagliare qualcosa....) si scrivono dei codici, che ovviamente devono essere tradotti, nei CORRISPETTIVI codici binari, interpretabili dalla macchina


Quote:
Originariamente inviato da Bellaz89 Guarda i messaggi
Inoltre in C/C++ mi hanno sempre detto di evitare il goto perche' questo non permette al compilatore di fare ulteriori passi di ottimizzazione e riordinamento del codice.
più che altro con il goto, si fa fatica a comprendere il codice.
Per contro, visto che siamo in argomento, l'equivalente del goto in assembly, l'istruzione JUMP (JMP ecc...) è necessaria.
Assembly è davvero qualcosa di disumano: bisogna scrivere molte righe, pianificando l'uso che se ne farà dei registri...per una semplice operazione a=4+5;, bisogna caricare nei registri gli operandi , e solo successivamente è possibile usare l'istruzione ADD e poi trascrivere il risultato memorizzato nel registro in memoria: 1 istruzione in C semplicissima sono diventate 4 istuzioni macchina (assembly)

Quote:
Originariamente inviato da cdimauro Guarda i messaggi
@Vi7o: ancora una volta stai mischiando codice oggetto (binario) con linguaggio macchina. Sono due cose diverse, e il primo rimane il risultato della compilazione/traduzione di un sorgente scritto col secondo.

Se si chiama LINGUAGGIO, ci sarà un motivo, no? E se l'altro si chiama codice oggetto (o binario), idem.
il codice oggetto è scritto in linguaggio macchina. Ma la differenza tra il codice sorgente in linguaggio assembly è solo nella rappresentazione.. sostituendo i simboli mnemonici con le corrispettive sequenze binarie si ottiene il codice oggetto...

L'assembler (assemblatore) che trasforma il file sorgente in codice oggetto, semplicemente converte le istruzioni in codice mnemonico in binario e le monta una accanto alle altre...non fa nient'altro

Ultima modifica di tuttodigitale : 28-05-2016 alle 02:14.
tuttodigitale è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2016, 01:56   #46
LMCH
Senior Member
 
Iscritto dal: Jan 2007
Messaggi: 6098
Quote:
Originariamente inviato da fabio892 Guarda i messaggi
usano tali sistemi perchè sono immuni dall'emp di una bomba nucleare nemica.
No, tutta l'avionica critica ed i sistemi informatici devono essere resistenti agli EMP
(entro limiti ragionevoli in base alla criticità ed alle schermature dove vengono installati).

Semplicemente sono un numero limitato sistemi (che risalgono a fine anni '70 ed inizio anni '80) usati nei siti di lancio "fissi" e dalle basi dove sono custodite le testate e le armi aviolanciate, ed è più conveniente andare avanti con i pezzi di ricambio ed i floppy che hanno in stock piuttosto che sostituirli.

Probabilmente quando sostituiranno i missili "fissi" sostituiranno anche tutto il sistema di lancio oppure rottamerano tutti i siti fissi, si appoggeranno solo sui sottomarini lanciamissili e sulle armi aviolanciate e sostituiranno solo il software di "gestione magazzino armi nucleari".

Già ora UK e Francia fanno così, mentre Russia e Cina hanno siti fissi perchè non riescono ad avere un numero sufficiente di sottomarini lanciamissili "ben piazzati" (e con vettori con sufficiente portata ) da potersi appoggiare solo ad essi.
LMCH è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2016, 11:42   #47
Vi7o
Member
 
Iscritto dal: Oct 2011
Messaggi: 146
Ragazzi a questo punto non mi resta che citare wikipedia :

"Il linguaggio macchina viene spesso confuso con il linguaggio assembly e viceversa. L'assembly è in realtà un linguaggio di programmazione a basso livello che, analogamente ai linguaggi ad alto livello come C, C++, C#, Pascal, Java, Python, Visual Basic, Ruby, ecc., richiede un processo di traduzione. A differenza di questi ultimi, l'assembly consente una traduzione particolarmente semplice che trasforma ogni istruzione dell'assembly, in modo univoco, in una istruzione in linguaggio macchina.

I codici operativi e i dati nel linguaggio macchina sono pattern (stringhe) di bit. L'assembly utilizza al loro posto istruzioni mnemoniche, che rendono più semplice al programmatore umano lo sviluppo e il debug di programmi."

l'articolo completo è qui: https://it.wikipedia.org/wiki/Linguaggio_macchina

Spero a questo punto che la vostra confusione possa dissolversi, altrimenti mi arrendo e vi auguro buona fortuna con le vostre convinzioni
Vi7o è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2016, 11:48   #48
aqua84
Senior Member
 
L'Avatar di aqua84
 
Iscritto dal: Jan 2010
Messaggi: 7529
Visto che state discutendo sui vari "linguaggi" di programmazione, e in particolare su quello Assembly e Binario(macchina), mi unisco alla discussione chiedendo una cosa che nessuno mi ha mai saputo spiegare, ovvero come è stato programmato il tutto?

Mi spiego meglio.
Perchè da qualche parte si è pur dovuto iniziare.
La "Macchina" capisce solo una sequenza di ZERO e UNO, quindi Binario.
L'Assembly è il linguaggio che piu si avvicina a quello Binario.

Ma cosa è stato usato per creare/inventare/programmare l'Assembly?

Non credo che il computer stesso abbia dettato all'Uomo i comandi che lui accetta e quelli che invece non gli piacciono.

C'è qualcuno che riesce a spiegarmi questa cosa?
Grazie!
__________________
Telegram: @shutter1sland
aqua84 è online   Rispondi citando il messaggio o parte di esso
Old 28-05-2016, 12:03   #49
GTKM
Senior Member
 
L'Avatar di GTKM
 
Iscritto dal: Jan 2014
Messaggi: 3826
Quote:
Originariamente inviato da aqua84 Guarda i messaggi
Visto che state discutendo sui vari "linguaggi" di programmazione, e in particolare su quello Assembly e Binario(macchina), mi unisco alla discussione chiedendo una cosa che nessuno mi ha mai saputo spiegare, ovvero come è stato programmato il tutto?

Mi spiego meglio.
Perchè da qualche parte si è pur dovuto iniziare.
La "Macchina" capisce solo una sequenza di ZERO e UNO, quindi Binario.
L'Assembly è il linguaggio che piu si avvicina a quello Binario.

Ma cosa è stato usato per creare/inventare/programmare l'Assembly?

Non credo che il computer stesso abbia dettato all'Uomo i comandi che lui accetta e quelli che invece non gli piacciono.

C'è qualcuno che riesce a spiegarmi questa cosa?
Grazie!
Un'istruzione in Assembly è una sorta di "etichetta" di una istruzione binaria. Se ti riferisci a come è stato implementato il primo assembler, direi probabilmente direttamente in binario, no?
GTKM è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2016, 12:22   #50
Vi7o
Member
 
Iscritto dal: Oct 2011
Messaggi: 146
Quote:
Originariamente inviato da aqua84 Guarda i messaggi
Visto che state discutendo sui vari "linguaggi" di programmazione, e in particolare su quello Assembly e Binario(macchina), mi unisco alla discussione chiedendo una cosa che nessuno mi ha mai saputo spiegare, ovvero come è stato programmato il tutto?

Mi spiego meglio.
Perchè da qualche parte si è pur dovuto iniziare.
La "Macchina" capisce solo una sequenza di ZERO e UNO, quindi Binario.
L'Assembly è il linguaggio che piu si avvicina a quello Binario.

Ma cosa è stato usato per creare/inventare/programmare l'Assembly?

Non credo che il computer stesso abbia dettato all'Uomo i comandi che lui accetta e quelli che invece non gli piacciono.

C'è qualcuno che riesce a spiegarmi questa cosa?
Grazie!
Ci provo io nel mio piccolo, senza scendere troppo nei dettagli:
Si parte dal presupposto che le macchine elettroniche comprendono solo la presenza/assenza di segnale elettrico(anche se non è proprio così per non scendere troppo nei dettagli), qui entra in gioco l'uomo, che assegna a presenza=1 assenza=0(anche se nella pratica accade il contrario)
Quindi se tu hai una lampadina con due pulsanti puoi assegnarli i seguenti codici:
0 = spento
1 = acceso

se crei un circuito fisico più complesso(si parlerebbe di maggior numero di "porte" e qui si parlerebbe di un altro linguaggio...):
00 = spento
01 = acceso
10 = strobo
11 = prossimo comando

quindi se vuoi dare un istruzione complessa alla tua lampadina dovresti fare una cosa del genere:
01;
11;
10;
11;
00;
avrai detto alla macchina(che riceve gli impulsi) accenditi, fai effetto strobo, spegniti

qui nasce però il problema che lavorare con i binari diventa un po complicato, quindi posso montare una macchina intermedia: l'assembler
questa macchina traduttore o meglio compilatore mi permette di dire(sempre tutto semplificato):
acceso;
prossima istruzione;
strobo;
prossima istruzione;
spento;

o addirittura chiamare il tutto "programma1"
l'assembler leggendo queste 5 stringhe o 1 stringa nel caso di "programma1" compila la stessa sequenza binaria di prima, la macchina leggendo l'impulso eseguirà gli ordini in binario.

Se non leggi il testo tra le parentesi diventa tutto più fluido.

Ultima modifica di Vi7o : 28-05-2016 alle 13:12.
Vi7o è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2016, 14:44   #51
tuttodigitale
Senior Member
 
Iscritto dal: Sep 2010
Messaggi: 4370
Quote:
Originariamente inviato da Vi7o Guarda i messaggi
l'assembly consente una traduzione particolarmente semplice che trasforma ogni istruzione dell'assembly, in modo univoco, in una istruzione in linguaggio macchina.
che è esattamente quello che stavo dicendo:
una volta che si dà in pasto all'assembler, NON esiste alcuna differenza se prima di questo processo hai usato il linguaggio macchina o l'assembly...il codice oggetto sarà IDENTICO, per dimensioni e prestazioni, perchè identica sarà la sequenza di bit..
Il fatto che l'assembly sia più lento del linguaggio macchina è una bufala, a meno di non eseguire la traduzione run-time...cosa che non avviene praticamente mai quando la fase di debugging è terminata.

Una forma, se vogliamo primitiva di assembly è quello di usare il codice esadecimale in sostituzione di quello binario.
Ad un 1010 viene sostituito la cifra A, modificandone la sintassi, ma mantenendo la semantica. Anche in questo caso i numeri esadecimali devono essere tradotti nei corrispettivi binari, prima di essere eseguibili dalla macchina.
in sostanza, la differenza tra linguaggio assembly e macchina, è SOLO nella sintassi....detta in un altro modo, cambia la forma ma non la sostanza di quello che si scrive.
tuttodigitale è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2016, 15:12   #52
Vi7o
Member
 
Iscritto dal: Oct 2011
Messaggi: 146
devo però correggerti tuttodigitale, perchè programmare in Assembly significa scrivere stringhe

le macchine sanno leggere stringhe? NO quindi hai bisogno di un'altra macchina(l'assembler)

Se io so scrivere direttamente in linguaggio macchina ho bisogno dell'Assembler? NO

Cosa è più efficiente 1 macchina che esegue il codice al volo o 2 macchine(macchina+assembler), sta benedetta traduzione assembly/codice_macchina porta via tempo o no?SI

anche Nero o ImgBurn creano codice macchina per il lettore cd ma Quanto vi fanno aspettare?

Per intenderci nell'esempio della "lampadina a 4funzioni" che ho fatto sopra l'Assembler per leggere istruzioni stringa per sta lampadina sarebbe una macchina più complicata della "lampadina a 4funzioni" stessa, perchè minimo deve saper leggere i caratteri alfanumerici

Un altro esempio: se io voglio spegnere la tv ho due vie:
1 - spengo dal tasto attaccato alla tv(può essere visto come linguaggio macchina)più comodo per la macchina meno per l'uomo.
2 - spengo dal tasto del telecomando(può essere visto come linguaggio assembly) devo prevedere altro hardware, più comodo per l'uomo meno per la macchina

il risultato è si lo stesso ma posso benissimo fare a meno del telecomando in modo più efficiente per il tv, e meno costoso per l'uomo(costo del telecomando, e del controller hw/sw)
Vi7o è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2016, 15:16   #53
SpyroTSK
Senior Member
 
Iscritto dal: Jul 2004
Messaggi: 2865
Quote:
Originariamente inviato da s5otto Guarda i messaggi
Premetto le scuse ma avendo letto quanto sopra in tanti post ,m'è irresistibile la voglia di dire : io c'ero.

Beh! certo nulla di che!, anche tanti di voi c'erano non parliamo di 100 anni fà ...... se però penso che sul Data General CS-50 col cobol dovevo stare nei 24mb di programma ..... per cui si andava a distinguere quanto pesava meno l'istruzione SET A=B al posto della MOVE A TO B .

Il disco removibile era di questo tipo ... https://upload.wikimedia.org/wikiped...tridge.agr.jpg

...... che dite? glielo mando il curriculum
Io usavo le pizze!
A casa dei miei ci sono ancora due storage IBM 1311 con 5 o 6 disk pack (erano soprannominati Pizze! ) della Dysan e in corredo un fantastico IBM 1620 COMPLETO!!! (FUNZIONANTE!!!!)

Che dici, li mandiamo assieme?
SpyroTSK è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2016, 15:16   #54
tuttodigitale
Senior Member
 
Iscritto dal: Sep 2010
Messaggi: 4370
Quote:
Originariamente inviato da Vi7o Guarda i messaggi
Un altro esempio: se io voglio spegnere la tv ho due vie:
1 - spengo dal tasto attaccato alla tv(può essere visto come linguaggio macchina)più comodo per la macchina meno per l'uomo.
2 - spengo dal tasto del telecomando(può essere visto come linguaggio assembly) devo prevedere altro hardware, più comodo per l'uomo meno per la macchina
l'esempio non è calzante...il tempo di traduzione è una tantum.
un esempio sempre attinente alla TV è il seguente...
sono seduto distante (rappresentazione mnemonica). una volta che mi sono avvicinato (traduzione al binario), non esiste più nessuna differenza anche nelle istruzioni svolte (spegnere la tv con il tasto) ....e se le istruzioni eseguite sono identiche lo è anche la veloxità.

E una volta che ho ottenuto il codice oggetto, resterl vicino alla TV per l'eternità

Ultima modifica di tuttodigitale : 28-05-2016 alle 15:36.
tuttodigitale è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2016, 15:20   #55
tuttodigitale
Senior Member
 
Iscritto dal: Sep 2010
Messaggi: 4370
Quote:
Originariamente inviato da Bellaz89 Guarda i messaggi
Quello che scrivi e' sicuramente vero. Pero' proprio perche' con il goto si puo' scrivere facilmente flussi di controllo complicati, il compilatore fa fatica ad ottimizzare codice in cui si abusa di goto
non lo metto in dubbio, ma la ragione principale è da ricercarsi nella manuntenibilità del codice.
E questa è anche la ragione per cui i parametri vengono per lo più passati per valore.

Quote:
Originariamente inviato da aqua84 Guarda i messaggi
Perchè da qualche parte si è pur dovuto iniziare.
La "Macchina" capisce solo una sequenza di ZERO e UNO, quindi Binario.
L'Assembly è il linguaggio che piu si avvicina a quello Binario.
l'assembly, ma anche il codice esadecimale, non può essere interpretabile dalla macchina: per ragioni di efficienza si usa la più semplice fra tutte le codifiche posizionali. La macchina conosce solo la sua lingua.

La domanda interessante, è chi ha dato la lingua alla macchina...la lingua è intrinseca nella progettazione della macchina,e dovuta nella forma più semplice in quella che viene chiamata CU (Control Unit), una rete combinatoria che in base al codice eseguibile, (determinato dal produttore in fase di progetto) cambia la configurazione della CPU.
In sostanza, come ha spiegato Vi70, l'istruzione non fa che aprire e chiudere determinati fili, bus....ad esempio mettere in comunicazione tre registri per l'istruzione ADD, o mettere in comunicazione un registro e la RAM, e nel caso abilitare il comando read/write enable per registro/ram rispettivamente se è un'istruzione STORE, o abilitare il comando write/read enable se è un'istruzione LOAD.

PS non sono un programmatore.
tuttodigitale è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2016, 15:38   #56
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Sintassi, appunto perché parliamo di un linguaggio che viene utilizzato per rappresentare qualcosa che andrà a finire poi nel codice oggetto/binario.

La rappresentazione esadecimale usata al posto di quella binaria (ma s'è usata anche quella ottale) è un esempio di sintassi diversa impiegata per il linguaggio macchina di un'architettura, che finisce poi per generare il codice oggetto finale una volta effettuata la traduzione.

Non c'è nessuno che nei primi anni '80 ha mai scritto qualcosa in linguaggio macchina? Si usavano le opcode table per le istruzioni, facendo poi i calcoli a mano per gli offset (istruzioni di salto "breve", in particolare), e si mettevano via via tutti i byte in sequenza per generare il listato finale.

Nessuno ha mai visto le riviste dell'epoca, come LIST o anche la famosissima MC MicroComputer, che riportavano listati da digitare contenenti queste sequenze, che venivano poi tradotte e caricate in precise zone di memoria, per poi essere eseguite con istruzioni tipo SYS? Quei listati contenevano blocchi di istruzioni (tipo DATA) che contenevano appunto i codici binari/ottali/esadecimali in linguaggio macchina. A volte per ogni riga veniva aggiunto un byte extra di checksum per verificare che la riga non contenesse errori di digitazione; ovviamente il byte non veniva copiato in memoria.

Basti, quindi, andare a prendere una di queste riviste (e non Wikipedia), spulciarla, e toccare con mano cosa significava scrivere un programma in linguaggio macchina, e cosa si otteneva alla fine (il codice oggetto da qualche parte in memoria).

TL;DR: due cose diverse.

Aggiungo un paio di precisazioni: non c'è necessariamente corrispondenza biunivoca fra istruzioni assembly e corrispondenti in linguaggio macchina. Esistono, infatti, architetture come i Motorola 68K o gli Intel x86 che presentano aliasing nelle istruzioni: la stessa istruzione in assembly può essere tradotta in una di diverse in linguaggio macchina, di cui ovviamente l'assemblatore ne sceglierà sempre e soltanto una.

Infine sì: lavorare in assembly non era affatto semplice, ma all'epoca quello c'era (se si voleva velocità e/o compattezza), ma c'è da dire che architetture come quelle elencate prima consentivano di scrivere programmi in maniera più facile rispetto ad altre architetture. Infatti alcune istruzioni C, come ad esempio l'incremento di una variabile, si mappano in esattamente una istruzione assembly.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2016, 15:56   #57
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Non è nemmeno vero che un programma scritto in "logica sequenziale" debba essere più veloce di uno in OOP: dipende sempre dal tipo di codice, e da com'è implementato il meccanismo di dispatching dei metodi nel secondo caso.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2016, 16:00   #58
tuttodigitale
Senior Member
 
Iscritto dal: Sep 2010
Messaggi: 4370
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
.....
tuttodigitale è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2016, 16:11   #59
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da Bellaz89 Guarda i messaggi
Ma infatti io ho scritto il contrario
E io t'ho dato ragione.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2016, 16:52   #60
Vi7o
Member
 
Iscritto dal: Oct 2011
Messaggi: 146
Quote:
Originariamente inviato da tuttodigitale Guarda i messaggi
l'esempio non è calzante...il tempo di traduzione è una tantum.
un esempio sempre attinente alla TV è il seguente...
sono seduto distante (rappresentazione mnemonica). una volta che mi sono avvicinato (traduzione al binario), non esiste più nessuna differenza anche nelle istruzioni svolte (spegnere la tv con il tasto) ....e se le istruzioni eseguite sono identiche lo è anche la veloxità.

E una volta che ho ottenuto il codice oggetto, resterl vicino alla TV per l'eternità
Una Tantum = 1
Nessuno = 0

1>0

qui se non io è la matematica che ti smentisce

Quindi una volta ti sei alzato(compilazione assembly>binario), e se non ti pesa alzarti(sai programmare in linguaggio macchina), tanto che sei vicino al tv, risparmi le batterie del telecomando(avere un assembler)

ribadisco il risultato è lo stesso ma a regime in presenza di hw/sw specifico e questo non è banale, e meno male non vorrei mai programmare in binario...
Vi7o è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Borderlands 4, tra divertimento e problemi tecnici Recensione Borderlands 4, tra divertimento e pro...
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale TCL NXTPAPER 60 Ultra: lo smartphone che trasfor...
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming Un fulmine sulla scrivania, Corsair Sabre v2 Pro...
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni Nokia Innovation Day 2025: l’Europa ha bisogno d...
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza Sottile, leggero e dall'autonomia WOW: OPPO Reno...
Chery lancia Lepas in Europa: il nuovo b...
Dongfeng Box, primo contatto: il perch&e...
Candidato smaschera i recruiter AI con u...
Colpo al 'pezzotto': smantellato il 70% ...
Tineco FLOOR ONE i6 Stretch a soli 299€ ...
Denodo presenta la versione 9.3 della su...
Stati Uniti, attivata la prima batteria ...
Xpeng si espande in Europa: debutto in 5...
Robot aspirapolvere in offerta su Amazon...
Rilasciato finalmente Windows ML: come c...
Dreame lancia il guanto di sfida a Rolls...
Il sistema di assistenza alla mira che d...
Virtua Fighter, il nuovo combat system s...
Snapdragon X2 Elite Extreme, dettagli su...
Microsoft risponde alle accuse: bloccati...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 15:42.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v
1