QNA > L > La Differenza Tra I Linguaggi Assembly Arm E X86-64 È Così Grande? Quanto Sarebbe Facile Imparare Uno Se Si Conosce Già L'altro?

La differenza tra i linguaggi assembly ARM e x86-64 è così grande? Quanto sarebbe facile imparare uno se si conosce già l'altro?

A2A

È facile?

Sì e no.

Dipende da ciò che si intende realizzare, non conosco l'intero assembly Arm64/AArch64 o x86-64 ma ho fatto diversi progetti che richiedevano la conoscenza di entrambi.

Perché dico che dipende da ciò che si vuole realizzare, capire i registri e le modalità di indirizzamento ecc. è piuttosto semplice se si conosce uno dei due, imparare l'altro non è difficile, ho iniziato a imparare x86 prima perché dovevo portare un programma di Stack overflow a 32 bit a 64 bit (http://www-inst.eecs.berkeley.edu/~cs161/fa08/papers/stack_smashing.pdf), ora fare questa transizione all'interno della stessa architettura è stato piuttosto facile, probabilmente ha richiesto qualche settimana.

Io stavo anche imparando Arm32/AArch32 in parallelo per un progetto diverso, ancora una volta scrivere programmi di base o assembly in linea non sarà difficile.

Ora vi dirò cosa è difficile, scrivere efficiente e intendo efficiente alla granularità IPC (istruzioni per ciclo), questo richiede una comprensione molto profonda dell'architettura, cose come l'ordinamento della memoria (l'ordinamento della memoria rilassato è pazzo e per niente rilassante per il programmatore), SIMD (di nuovo richiede un sacco di sforzo nel benchmarking i.e. correttamente benchmarking), memoria transazionale, ecc.

Questo mi ha preso più di 2 anni e non sono sicuro di essere neanche lontanamente vicino ad essere un esperto, quindi è facile per compiti semplici, ma per complicati codici multithread, ad alte prestazioni, preparatevi ad avere i capelli grigi.

Di Alisander

Quali sono i pro e i contro di un sensore di impronte digitali montato lateralmente negli ultimi smartphone? :: Quali sono le specifiche del OnePlus Nord CE 5G?
Link utili