CPU lato programmatore: cosa è visibile?

Il ritrovo della comunità dove confrontarsi e discutere sulle notizie dal mondo dell'informatica, di Ubuntu e di tutto quello che la riguarda, novità, pettegolezzi e quant'altro.
Avatar utente
toni00c
Prode Principiante
Messaggi: 207
Iscrizione: giovedì 19 maggio 2011, 9:13
Distribuzione: xubuntu,debian,tails,linux mint

CPU lato programmatore: cosa è visibile?

Messaggio da toni00c »

ciao ho una domanda banale : sapete dirmi com'è possibile sapere con certezza per una specifica cpu il suo set istruzioni e i registri visibili al programmatore?
ho un intel I3m 350 : non riesco a trovare dettagli nel web :muro: ;
suppongo che la mia cpu rispetto ad esempio a un P4 core duo sia differente dal punto di vista del programmatore (almeno un po ) : sbaglio?
.. ubuntu customization kit... la mia vera rivoluzione comincia ora.. :birra:
Avatar utente
ubuntumate
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1180
Iscrizione: giovedì 28 maggio 2015, 18:18
Distribuzione: Windows 7
Sesso: Maschile
Località: Milano

Re: [cpu] lato programmatore , cosa è visibile?

Messaggio da ubuntumate »

Per quanto concerne il set di istruzioni supportate,fai così:

Codice: Seleziona tutto

cat /proc/cpuinfo
Alla voce flag trovi tutte le istruzioni supportate.
Per i registri non saprei, quelli standard sono noti.
Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.
ACM/IEEE Code of ethics.
Avatar utente
toni00c
Prode Principiante
Messaggi: 207
Iscrizione: giovedì 19 maggio 2011, 9:13
Distribuzione: xubuntu,debian,tails,linux mint

Re: [cpu] lato programmatore , cosa è visibile?

Messaggio da toni00c »

ubuntumate [url=http://forum.ubuntu-it.org/viewtopic.php?p=4785820#p4785820][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Per quanto concerne il set di istruzioni supportate,fai così:

Codice: Seleziona tutto

cat /proc/cpuinfo
Alla voce flag trovi tutte le istruzioni supportate.
Per i registri non saprei, quelli standard sono noti.
ciao grazie , ma il comando mi restituisce dettagli sulla cpu hardware , ma non il set di istruzioni :
io intendevo ad esempio add, mov , sub ect ect...
.. ubuntu customization kit... la mia vera rivoluzione comincia ora.. :birra:
Avatar utente
Darren
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 402
Iscrizione: giovedì 30 ottobre 2008, 10:08
Desktop: KDE Plasma
Distribuzione: Arch Linux
Sesso: Maschile
Località: Alessandria

Re: [cpu] lato programmatore , cosa è visibile?

Messaggio da Darren »

a me interesserebbe sapere come hanno inserito le istruzioni nella cpu.

c'è un programma per programmare la cpu??
a sua volta come è stato realizzato quel programma??

nessuno mi ha mai saputo rispondere... :(
skype: live:.cid.298cc9477050507b
telegram: @shutter1sland
Avatar utente
Jhack
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1363
Iscrizione: lunedì 4 marzo 2013, 22:23
Desktop: Windows 10 PRO 64 Bit
Distribuzione: Windows 10 PRO 64 Bit
Sesso: Maschile
Località: Italia
Contatti:

Re: [cpu] lato programmatore , cosa è visibile?

Messaggio da Jhack »

toni00c [url=http://forum.ubuntu-it.org/viewtopic.php?p=4785817#p4785817][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:ciao ho una domanda banale : sapete dirmi com'è possibile sapere con certezza per una specifica cpu il suo set istruzioni e i registri visibili al programmatore?
ho un intel I3m 350 : non riesco a trovare dettagli nel web :muro: ;
suppongo che la mia cpu rispetto ad esempio a un P4 core duo sia differente dal punto di vista del programmatore (almeno un po ) : sbaglio?
a parte i set comuni a 32 e 64 bit supporta sse4.1/4.2. non supporta invece l aes o istruzioni più recenti come avx.

questo è ciò che si trova sul sito intel altro non saprei dirti.
Graphite 760T White || X99 Sabertooth || Core Extreme i7-5820K @ 4.2 GHz || Kraken X72 + 6x ML120 || Ripjaws 32 Gb @ 2666 Mhz 15-15-15-35 1T || STRIX GTX 980 TI @ 1424 Mhz 6 Gb @ 8000 Mhz || Essence STX II 7.1 || MX500 500 Gb || MX500 2 Tb || Black 2x2 Tb || Gold 2x2 Tb || Barracuda 2x2 Tb || SuperNova G2 750 Watt || MX259H 1920x1080 @ 74 Hz x2 || AKG K712 PRO
Avatar utente
ubuntumate
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1180
Iscrizione: giovedì 28 maggio 2015, 18:18
Distribuzione: Windows 7
Sesso: Maschile
Località: Milano

Re: [cpu] lato programmatore , cosa è visibile?

Messaggio da ubuntumate »

Codice: Seleziona tutto

cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Pentium(R) Dual  CPU  E2200  @ 2.20GHz
stepping        : 13
microcode       : 0xa4
cpu MHz         : 1200.000
cache size      : 1024 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm dtherm
bogomips        : 4389.27
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Pentium(R) Dual  CPU  E2200  @ 2.20GHz
stepping        : 13
microcode       : 0xa4
cpu MHz         : 2200.000
cache size      : 1024 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
apicid          : 1
initial apicid  : 1
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
[b]flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm dtherm[/b]
bogomips        : 4389.27
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

La parte in grassetto non contiene le istruzioni della CPU? Tra le tante vedo MMX SSE e SSE2.
Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.
ACM/IEEE Code of ethics.
Avatar utente
thece
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 13190
Iscrizione: lunedì 23 aprile 2007, 14:16
Distribuzione: Debian 12 (Bookworm) - KDE

Re: [cpu] lato programmatore , cosa è visibile?

Messaggio da thece »

Le mie informazioni sono un pò vecchiotte, ma credo che facciano ancora così
Le "istruzioni" sono implementate fisicamente mediante transistor
Darren [url=http://forum.ubuntu-it.org/viewtopic.php?p=4785858#p4785858][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto: c'è un programma per programmare la cpu??
a sua volta come è stato realizzato quel programma??
Intendi linguaggio di programmazione Assembler Assembly e relativi strumenti?
Avatar utente
Claudio_F
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1463
Iscrizione: lunedì 28 maggio 2012, 18:49
Desktop: Mate/Gnome
Distribuzione: Ubu22.04

Re: [cpu] lato programmatore , cosa è visibile?

Messaggio da Claudio_F »

Darren ha scritto: a me interesserebbe sapere come hanno inserito le istruzioni nella cpu.
Si progettano le istruzioni, si stabiliscono le sequenze binarie che rappresentano le istruzioni, si progettano i circuiti in grado di reagire a quelle sequenze realizzando la funzione prevista. Di fatto le istruzioni assembly sono già delle astrazioni sulle funzioni logiche dei circuiti sottostanti.

c'è un programma per programmare la cpu??
Ci sono programmi di progettazione elettronica con cui assemblare le varie funzioni logiche, dopo di che si passa all'incisione su silicio dei componenti necessari a realizzarle.
a sua volta come è stato realizzato quel programma??
È un processo che si è evoluto nel tempo, dai primi cablaggi a mano agli attuali software che permettono di assemblare macrofunzioni sempre più complesse. Oggi è diventato perfino possibile realizzare via software i circuiti di intere CPU a partire da matrici di porte inizialmente scollegate che vengono collegate tra loro in base al contenuto di una memoria (FPGA).
Avatar utente
Jhack
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1363
Iscrizione: lunedì 4 marzo 2013, 22:23
Desktop: Windows 10 PRO 64 Bit
Distribuzione: Windows 10 PRO 64 Bit
Sesso: Maschile
Località: Italia
Contatti:

Re: [cpu] lato programmatore , cosa è visibile?

Messaggio da Jhack »

Claudio_F [url=http://forum.ubuntu-it.org/viewtopic.php?p=4785986#p4785986][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:
Darren ha scritto: a me interesserebbe sapere come hanno inserito le istruzioni nella cpu.
Si progettano le istruzioni, si stabiliscono le sequenze binarie che rappresentano le istruzioni, si progettano i circuiti in grado di reagire a quelle sequenze realizzando la funzione prevista. Di fatto le istruzioni assembly sono già delle astrazioni sulle funzioni logiche dei circuiti sottostanti.

c'è un programma per programmare la cpu??
Ci sono programmi di progettazione elettronica con cui assemblare le varie funzioni logiche, dopo di che si passa all'incisione su silicio dei componenti necessari a realizzarle.
a sua volta come è stato realizzato quel programma??
È un processo che si è evoluto nel tempo, dai primi cablaggi a mano agli attuali software che permettono di assemblare macrofunzioni sempre più complesse. Oggi è diventato perfino possibile realizzare via software i circuiti di intere CPU a partire da matrici di porte inizialmente scollegate che vengono collegate tra loro in base al contenuto di una memoria (FPGA).
questo è interessante
Graphite 760T White || X99 Sabertooth || Core Extreme i7-5820K @ 4.2 GHz || Kraken X72 + 6x ML120 || Ripjaws 32 Gb @ 2666 Mhz 15-15-15-35 1T || STRIX GTX 980 TI @ 1424 Mhz 6 Gb @ 8000 Mhz || Essence STX II 7.1 || MX500 500 Gb || MX500 2 Tb || Black 2x2 Tb || Gold 2x2 Tb || Barracuda 2x2 Tb || SuperNova G2 750 Watt || MX259H 1920x1080 @ 74 Hz x2 || AKG K712 PRO
Avatar utente
Darren
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 402
Iscrizione: giovedì 30 ottobre 2008, 10:08
Desktop: KDE Plasma
Distribuzione: Arch Linux
Sesso: Maschile
Località: Alessandria

Re: [cpu] lato programmatore , cosa è visibile?

Messaggio da Darren »

thece [url=http://forum.ubuntu-it.org/viewtopic.php?p=4785956#p4785956][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Le mie informazioni sono un pò vecchiotte, ma credo che facciano ancora così
Le "istruzioni" sono implementate fisicamente mediante transistor
Darren [url=http://forum.ubuntu-it.org/viewtopic.php?p=4785858#p4785858][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto: c'è un programma per programmare la cpu??
a sua volta come è stato realizzato quel programma??
Intendi linguaggio di programmazione Assembler Assembly e relativi strumenti?
intanto grazie per la risposta.

si, so che dentro ci sono fisicamente dei transistor, ma intendevo dire come gli "insegni" al transistor che tu programmatore dando il comando RIDI lui deve Ridere??
non so se riesco a spiegarmi bene...

le "macchine" capiscono solo ZERO e UNO (sempre se non sbaglio, no?)
il linguaggio che piu si avvicina al linguaggio macchina è l'Assembly. (e anche fino qui sapevo)
ma l'assembly è comunque un linguaggio, che prima non esisteva, quindi in qualche modo è stato creato.
e come è stato creato??
ad esempio, l'instruzione MOV
dubito che il transistor "legga" lettera per lettera la parola MOV e capisca cosa deve fare, ci sarà una "conversione" nel suo linguaggio binario.
quindi con qualcosa deve pur essere stato fatto questo lavoro se prima non c'era niente.
skype: live:.cid.298cc9477050507b
telegram: @shutter1sland
Avatar utente
toni00c
Prode Principiante
Messaggi: 207
Iscrizione: giovedì 19 maggio 2011, 9:13
Distribuzione: xubuntu,debian,tails,linux mint

Re: [cpu] lato programmatore , cosa è visibile?

Messaggio da toni00c »

la codifica delle istruzioni è dovuta alla tensione presente nei transistor che io sappia : la mov come istruzione non è altro che una sequenza di 0 e 1
.. ubuntu customization kit... la mia vera rivoluzione comincia ora.. :birra:
Avatar utente
Darren
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 402
Iscrizione: giovedì 30 ottobre 2008, 10:08
Desktop: KDE Plasma
Distribuzione: Arch Linux
Sesso: Maschile
Località: Alessandria

Re: [cpu] lato programmatore , cosa è visibile?

Messaggio da Darren »

toni00c [url=http://forum.ubuntu-it.org/viewtopic.php?p=4786226#p4786226][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:la codifica delle istruzioni è dovuta alla tensione presente nei transistor che io sappia : la mov come istruzione non è altro che una sequenza di 0 e 1
eh... ok... ma LUI come le sa queste cose??
cioè, non credo che il transistor nasce già di per se conoscendo l'istruzione MOV, e siamo stati noi Uomini a scoprire che lui capisce la parola MOV.

spero davvero di riuscire a farmi capire...
skype: live:.cid.298cc9477050507b
telegram: @shutter1sland
Avatar utente
toni00c
Prode Principiante
Messaggi: 207
Iscrizione: giovedì 19 maggio 2011, 9:13
Distribuzione: xubuntu,debian,tails,linux mint

Re: [cpu] lato programmatore , cosa è visibile?

Messaggio da toni00c »

Darren [url=http://forum.ubuntu-it.org/viewtopic.php?p=4786236#p4786236][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:
toni00c [url=http://forum.ubuntu-it.org/viewtopic.php?p=4786226#p4786226][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:la codifica delle istruzioni è dovuta alla tensione presente nei transistor che io sappia : la mov come istruzione non è altro che una sequenza di 0 e 1
eh... ok... ma LUI come le sa queste cose??
cioè, non credo che il transistor nasce già di per se conoscendo l'istruzione MOV, e siamo stati noi Uomini a scoprire che lui capisce la parola MOV.

spero davvero di riuscire a farmi capire...
c'è un decoder che decodifica appunto le istruzioni ( per essere semplicistici)
.. ubuntu customization kit... la mia vera rivoluzione comincia ora.. :birra:
Avatar utente
thece
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 13190
Iscrizione: lunedì 23 aprile 2007, 14:16
Distribuzione: Debian 12 (Bookworm) - KDE

Re: [cpu] lato programmatore , cosa è visibile?

Messaggio da thece »

Provo a risponderti, ma:

- non sono bravo a spiegare
- non sono bravo a scrivere
- è tanto tempo che non rivedo questi concetti

e una spiegazione del genere, pur semplificata, richiede tante tante parole. Per chi ne sa: vi prego, perdonatemi
Darren [url=http://forum.ubuntu-it.org/viewtopic.php?p=4786218#p4786218][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto: si, so che dentro ci sono fisicamente dei transistor, ma intendevo dire come gli "insegni" al transistor che tu programmatore dando il comando RIDI lui deve Ridere??
non so se riesco a spiegarmi bene...
Parti dal presupposto che una CPU in realtà esegue operazioni molto molto molto più semplici, riducendo all'osso: somme e confronti. Le operazioni complesse vengono suddivise in operazioni molto molto semplici, ma eseguite molto molto velocemente.

Il singolo transistor (in una CPU) fa essenzialmente una cosa sola. Fa passare o non fa passare la corrente dal source al drain in funzione del fatto che il suo gate sia alimentato o meno. Con questa semplice funzione è già possibile, collegando opportunamente fra loro in cascata più transistor, costuire i circuiti base che implementano le operazioni logiche / booleane: NOT, OR, AND, XOR ... Con queste semplici operazioni logiche / booleane è possibile a sua volta costruire funzioni più complesse (ma sempre circuiti): le somme, i confronti, etc ... Intravedi il meccanismo?
Assolutamente si
Darren [url=http://forum.ubuntu-it.org/viewtopic.php?p=4786218#p4786218][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto: il linguaggio che piu si avvicina al linguaggio macchina è l'Assembly. (e anche fino qui sapevo)
ma l'assembly è comunque un linguaggio, che prima non esisteva, quindi in qualche modo è stato creato.
e come è stato creato??
ad esempio, l'instruzione MOV
dubito che il transistor "legga" lettera per lettera la parola MOV e capisca cosa deve fare, ci sarà una "conversione" nel suo linguaggio binario.
quindi con qualcosa deve pur essere stato fatto questo lavoro se prima non c'era niente.[/color]
No, il transistor non legge l'istruzione MOV. L'istruzione MOV viene tradotta dall'assemblatore nel relativo codice macchina, fatto di 0 e 1, supponiamo 00110011. Questo codice macchina, caricato inizialmente in RAM, poi istruzione per istruzione nella CPU, viene opportunamente interpretato dalla CPU stessa, che quindi realizzerà la funzione MOV attivando opportuni circuiti fatti con le operazioni base di cui sopra. Ossia la CPU quando riconosce l'istruzione 00110011 attiva gli opportuni circuiti per spostare (ad esempio) un dato contenuto in un certo registro della CPU in ul altro registro della CPU
Avatar utente
Darren
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 402
Iscrizione: giovedì 30 ottobre 2008, 10:08
Desktop: KDE Plasma
Distribuzione: Arch Linux
Sesso: Maschile
Località: Alessandria

Re: [cpu] lato programmatore , cosa è visibile?

Messaggio da Darren »

thece ha scritto:Provo a risponderti, ma:

- non sono bravo a spiegare
- non sono bravo a scrivere
- è tanto tempo che non rivedo questi concetti

e una spiegazione del genere, pur semplificata, richiede tante tante parole. Per chi ne sa: vi prego, perdonatemi
Darren [url=http://forum.ubuntu-it.org/viewtopic.php?p=4786218#p4786218][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto: si, so che dentro ci sono fisicamente dei transistor, ma intendevo dire come gli "insegni" al transistor che tu programmatore dando il comando RIDI lui deve Ridere??
non so se riesco a spiegarmi bene...
Parti dal presupposto che una CPU in realtà esegue operazioni molto molto molto più semplici, riducendo all'osso: somme e confronti. Le operazioni complesse vengono suddivise in operazioni molto molto semplici, ma eseguite molto molto velocemente.

Il singolo transistor (in una CPU) fa essenzialmente una cosa sola. Fa passare o non fa passare la corrente dal source al drain in funzione del fatto che il suo gate sia alimentato o meno. Con questa semplice funzione è già possibile, collegando opportunamente fra loro in cascata più transistor, costuire i circuiti base che implementano le operazioni logiche / booleane: NOT, OR, AND, XOR ... Con queste semplici operazioni logiche / booleane è possibile a sua volta costruire funzioni più complesse (ma sempre circuiti): le somme, i confronti, etc ... Intravedi il meccanismo?
Assolutamente si
Darren [url=http://forum.ubuntu-it.org/viewtopic.php?p=4786218#p4786218][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto: il linguaggio che piu si avvicina al linguaggio macchina è l'Assembly. (e anche fino qui sapevo)
ma l'assembly è comunque un linguaggio, che prima non esisteva, quindi in qualche modo è stato creato.
e come è stato creato??
ad esempio, l'instruzione MOV
dubito che il transistor "legga" lettera per lettera la parola MOV e capisca cosa deve fare, ci sarà una "conversione" nel suo linguaggio binario.
quindi con qualcosa deve pur essere stato fatto questo lavoro se prima non c'era niente.[/color]
No, il transistor non legge l'istruzione MOV. L'istruzione MOV viene tradotta dall'assemblatore nel relativo codice macchina, fatto di 0 e 1, supponiamo 00110011. Questo codice macchina, caricato inizialmente in RAM, poi istruzione per istruzione nella CPU, viene opportunamente interpretato dalla CPU stessa, che quindi realizzerà la funzione MOV attivando opportuni circuiti fatti con le operazioni base di cui sopra. Ossia la CPU quando riconosce l'istruzione 00110011 attiva gli opportuni circuiti per spostare (ad esempio) un dato contenuto in un certo registro della CPU in ul altro registro della CPU
aspetta aspetta... tutto quello che mi dici è molto interessante, anche se in parte le conosco già.
voglio arrivare a questo punto qui: "No, il transistor non legge l'istruzione MOV. L'istruzione MOV viene tradotta dall'assemblatore nel relativo codice macchina, fatto di 0 e 1, supponiamo 00110011"

Ecco.
Noi tutti sappiamo che con 00110011 (tanto per esempio) il transistor eseguirà un determinato comando MOV.
Ma deve essere stato creato "dal nulla" qualcosa che Traduce appunto MOV > 00110011.
skype: live:.cid.298cc9477050507b
telegram: @shutter1sland
Avatar utente
thece
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 13190
Iscrizione: lunedì 23 aprile 2007, 14:16
Distribuzione: Debian 12 (Bookworm) - KDE

Re: [cpu] lato programmatore , cosa è visibile?

Messaggio da thece »

Darren [url=http://forum.ubuntu-it.org/viewtopic.php?p=4786284#p4786284][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto: Noi tutti sappiamo che con 00110011 (tanto per esempio) il transistor eseguirà un determinato comando MOV.
Ma deve essere stato creato "dal nulla" qualcosa che Traduce appunto MOV > 00110011.
Lato software, quel qualcosa che traduce il comando MOV nel relativo codice oggetto (aka linguaggio macchina, aka codice binario) è l'assemblatore

Lato hardware, quel qualcosa che traduce il comando MOV, quindi il relativo codice oggetto, nella corrispondente funzionalità è il circuito elettronico, fatto (in definitiva) di transistor
Avatar utente
Darren
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 402
Iscrizione: giovedì 30 ottobre 2008, 10:08
Desktop: KDE Plasma
Distribuzione: Arch Linux
Sesso: Maschile
Località: Alessandria

Re: [cpu] lato programmatore , cosa è visibile?

Messaggio da Darren »

thece [url=http://forum.ubuntu-it.org/viewtopic.php?p=4786292#p4786292][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:
Darren [url=http://forum.ubuntu-it.org/viewtopic.php?p=4786284#p4786284][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto: Noi tutti sappiamo che con 00110011 (tanto per esempio) il transistor eseguirà un determinato comando MOV.
Ma deve essere stato creato "dal nulla" qualcosa che Traduce appunto MOV > 00110011.
Lato software, quel qualcosa che traduce il comando MOV nel relativo codice oggetto (aka linguaggio macchina, aka codice binario) è l'assemblatore

Lato hardware, quel qualcosa che traduce il comando MOV, quindi il relativo codice oggetto, nella corrispondente funzionalità è il circuito elettronico, fatto (in definitiva) di transistor
si, ma scusami se insisto... questo software assemblatore sarà stato creato da qualcuno??
skype: live:.cid.298cc9477050507b
telegram: @shutter1sland
Avatar utente
thece
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 13190
Iscrizione: lunedì 23 aprile 2007, 14:16
Distribuzione: Debian 12 (Bookworm) - KDE

Re: [cpu] lato programmatore , cosa è visibile?

Messaggio da thece »

Se la domanda è: come è fatto un (software) assemblatore. La risposta è: non lo so.
Nei miei studi, anche accademici, non sono mai arrivato a questo livello di dettaglio. Ci si è sempre fermati ad un livello un pò più alto, a spiegarne la funzionalità.
Anche il funzionamento di un microprocessore io non te lo saprei spiegare così nel dettaglio, diciamo costruttivo. Mi hanno sempre spiegato quella che è l'astrazione di un microprocessore.

L'Assembly (per la CPU Z80) l'ho studiato e usato solamente alle scuole superiori ... tanto tempo fa ... all'università mi hanno praticamente spiegato che c'era, a cosa serviva, più o meno come funzionava, ma senza scendere più di tanto nel dettaglio. Manca il tempo per farlo, si devono studiare anche tante altre cose

In merito alla mia esperienza a scuola con l'Assembly per lo Z80, quello che mi ricordo è che utilizzavamo degli "scatolotti" programmabili nei quali inserivamo direttamente il codice oggetto in esadecimale. Siamo di pelino sopra ai numeri binari. Probabilmente ho scritto anche qualcosa su PC del tipo: file di testo in Assembly, poi passato al software assemblatore, etc ... etc ... ma non ne ho memoria ... ti ripeto: è passato tanto tanto tempo
Avatar utente
noemarco
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 336
Iscrizione: sabato 2 febbraio 2008, 10:37
Desktop: Gnome
Distribuzione: Ubuntu Xenial Xerus x86_64

Re: [cpu] lato programmatore , cosa è visibile?

Messaggio da noemarco »

forse quest due link sono di aiuto (se ho capito la domanda..)
cpu: http://www.enjoyphoneblog.it/20245/disc ... tiche.html
linguaggio macchina: https://it.wikipedia.org/wiki/Linguaggio_macchina

https://it.wikipedia.org/wiki/CPU
Set d'istruzioni macchina

Le istruzioni di una CPU (instruction set) sono semplicemente dei numeri, detti opcode o codici operativi: in base al loro valore l'unità di controllo intraprende delle azioni predefinite, come per esempio leggere la successiva locazione di memoria per caricare un dato, oppure attivare la ALU per eseguire un calcolo, oppure scrivere il contenuto di un registro in una certa locazione di memoria o in un altro registro, oppure una combinazione di queste.

Per una persona, stendere programmi scrivendo direttamente gli opcode è estremamente noioso e prono all'errore. Per questo motivo si utilizza l'assembly, che associa un simbolo mnemonico ad ogni istruzione della CPU e introduce una sintassi che permette di esprimere i vari metodi di indirizzamento in modo più intuitivo.
Avatar utente
thece
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 13190
Iscrizione: lunedì 23 aprile 2007, 14:16
Distribuzione: Debian 12 (Bookworm) - KDE

Re: [cpu] lato programmatore , cosa è visibile?

Messaggio da thece »

Spero di aver (minimamente) chiarito qualcosa.
Direi che siamo andati in OT, per ritornare alla domanda originale
toni00c [url=http://forum.ubuntu-it.org/viewtopic.php?p=4785817#p4785817][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto: ... sapete dirmi com'è possibile sapere con certezza per una specifica cpu il suo set istruzioni e i registri visibili al programmatore?
La risposta è si, basta cercare in Rete e le specifiche delle istruzioni e relative estensioni si trovano. Dovrebbero essere informazioni pubbliche, altrimenti come si riuscirebbe a costruire i compilatori? Immagino che (esempio) Intel voglia assolutamente nascondere i dettagli con cui costruisce le proprie CPU, ma non le istruzioni per usarle. Il suo businness è vendere CPU, o no?
Banalmente prova a fare una ricerca in Rete con "intel x86 instruction set reference". Cosa??? ... preferisci l'architettura ARMv6? ;)
Scrivi risposta

Ritorna a “Bar Ubuntu”

Chi c’è in linea

Visualizzano questa sezione: steff e 3 ospiti