Quote:
Originariamente inviato da Vi7o
cdimauro quello di certo non è linguaggio macchina, non mi sembra di vedere nemmeno una sequenza binaria...anzi da ciò che ho letto rapidamente dovrebbe essere un linguaggio di altissimo livello di questo tipo:
Tastiera-64>BASIC>Assembly>Linguaggio Macchina
ci sono almeno 3 traduzioni
|
Come pensi di realizzare un programma in linguaggio macchina e caricarlo in memoria?
Quote:
Nell'esempio del 5+1 io premettevo che io sapessi programmare allo stesso costo(5) in entrambi i linguaggi(per quanto sia fattibile o meno non ci interessa)
|
Ciò che supponi è impossibile. Se hai programmato in linguaggio macchina e in assembly per la stessa macchina, dovresti saperlo.
Quote:
quanto da voi affermato è sicuramente giusto visto nell'ottica umana,
Linguaggio ad Alto Livello efficientissimo per l'umano poco/niente per la macchina e non ci piove
Linguaggio di Basso Livello efficientissimo per la macchina poco/niente per l'umano
sono le basi dell'informatica ma non riuscite a distaccarvi dai Linguaggi ad Alto Livello
|
L'assembly è un linguaggio a bassissimo livello.
Quote:
ma soprattutto ci sto provando a spiegarvi che per quanto di Bassissimo Livello l'assembly non è la stessa cosa del linguaggio macchina perche la macchina non comprende l'assembly se prima non lo traduci
|
Non comprende nemmeno il linguaggio macchina se non gli piazzi il codice oggetto/binario DIRETTAMENTE in memoria.
Quote:
non continuate a dire: si ma una volta che l'hai tradotto è la stessa cosa
|
E' ESATTAMENTE la stessa cosa.
Quote:
l'assembly serve all'uomo per facilitare il suo compito non quello della macchina
|
L'unica cosa su cui concordo.
Quote:
perchè continuate ad ignorare che l'assembler è un altra macchina?
|
Non è una macchina, ma un tool. In particolare il linguaggio assembly è, al pari di quello macchina, un linguaggio.
Quote:
vi ho messo anche la slide guardate la slide...
|
Già fatto, e allora? Solo perché hai messo una slide dovremmo prenderla per vera?
Io ho iniziato a lavorare in linguaggio macchina 6502 (quello degli home computer Commodore) nell'82 (dopo un inizio col BASIC, che però era troppo limitato), facendo uso di una opcode table (presa da poster contenuto in un numero di Commodore Computer Club, se non ricordo male), e i programmini in questo linguaggio me li facevo su carta, producendo una sfilza di sequenze esadecimali.
Queste sequenze venivano poi caricate in memoria facendo uso di programmi come quello di cui ho postato l'immagine prima.
Una volta eseguito, le sequenze esadecimali diventavano byte caricati in precise locazioni di memoria.
Infine con una SYS potevo eseguire il codice oggetto generato dai passaggi precedenti.
Questa era la prassi all'epoca, se volevi lavorare in linguaggio macchina, e non solo con le macchine Commodore se ti vai rileggere le riviste dell'epoca (di cui trovi tante scansioni online, come quella che ho riportato).
Quando finalmente ho avuto a disposizione il Commodore Plus 4, che aveva un monitor integrato (programma che consentiva di disassemblare blocchi di memoria, assemblare istruzioni, eseguire il dump di blocchi di memoria, eseguire esecuzione passo-passo, ecc. ecc.), ho potuto assaggiare la differenza fra assembly e linguaggio macchina.
Ma il risultato finale, e la velocità d'esecuzione del codice oggetto/binario prodotto, era esattamente la stessa. A fronte di uno sforzo sovrumano col linguaggio macchina.
Per cui permettimi: ho potuto provare sulla mia pelle la differenza fra le due cose, e so benissimo come si lavorava con entrambi. Di slide, dunque, non ne ho proprio bisogno: al più te le posso produrre io, sulla scorta di anni di esperienza sul campo.