C'è qualche vantaggio nell'apprendimento del codice macchina? [duplicare]

1

Lavoro principalmente in Python e Ruby, ma di recente ho deciso di imparare un po 'di C quindi ho un'idea migliore di come funziona un in realtà del computer.

Mi sono chiesto se sia possibile fare un ulteriore passo avanti. Qualcuno apprende il codice macchina (qualunque sia C compilato) più? Trarterò del tempo per apprenderlo?

    
posta Phil Braun 16.04.2013 - 22:13
fonte

2 risposte

11

L'ho imparato, ma era nei giorni in cui Real Programmers indossavano gli scarponi da montagna .

L'apprendimento dell'assemblaggio ti darà un meraviglioso apprezzamento per la gestione della memoria, i puntatori, i buffer overflow, la caffeina e il valore di estrema pazienza.

La mia opinione personale è che vale la pena scrivere un piccolo programma di test o due, ma non molto di più.

Ci vuole un enorme sforzo per codificare funzionalità che sono quasi banali da fare negli ambienti moderni. (ad es., sintesi vocale)

    
risposta data 16.04.2013 - 22:34
fonte
6

Probabilmente no.

C'è una discussione sul fatto che conoscere il codice macchina ti aiuterà a capire cosa sta facendo la macchina in modo più dettagliato. Ma così saprebbe come funzionano i transistor e nessuno suggerisce che sia necessario conoscere la fisica dei semiconduttori per essere un buon programmatore!

Avendo un'idea di cosa sta facendo il codice e quali operazioni, come la copia della memoria o l'accesso a un disco, sono costose è utile - ma puoi conoscerle senza essere fluente nell'assembler. C'era anche una discussione che l'assemblatore ti aiuta a eseguire il debug di un dump di stack, ma i compilatori moderni possono produrre un codice optomised molto strano che è quasi impossibile da capire /.

Se vuoi capire l'assemblatore per la pura gioia di esso - allora ci sono un certo numero di assemblatori sintetici, o almeno più modelli di CPU moderni che sono più puliti di x86

    
risposta data 16.04.2013 - 22:18
fonte

Leggi altre domande sui tag