
私は会社員になってから
「アセンブラ言語で作られたプログラムをC++にリプレースする」
というプロジェクトに携わることになりました。
既存プログラムを解析する為にアセンブラを勉強
最初はアセンブラ自体をほとんど知らなかったので、既存プログラムを解析する為にアセンブラを勉強をすることになりました。
基本的な事項は「アセンブラプログラミング入門」という書籍と、ネットで調べました。
[amazonjs asin="4844372874" locale="JP" title="アセンブラプログラミング入門 (コンピュータ サイエンス 大学講座 2)"]
C++に置き換えたプログラムの動作を確認

リプレース案件なので、アセンブラ側のプログラムはすでに完成品です。
実際に動作させてみて、この時はだいたいこんな感じの動きをすると把握したうえで、上司にアセンブラ言語を教わりながら解析を進めました。
解析を進めつつ、機能を仕様書にまとめながらC++に置き換えたプログラムが同じ動作をするかをテストすることを繰り返しました。
幸いにも、実技も兼ねて教えてくれる上司がおり、仕事する環境はとても良かったと思います。
何度もエラーを経験した

このプロジェクトはトータルで半年くらいかかったですが、開始して2ヶ月目あたりから、実機に変換しつつ動かしていたので、他のメンバーとくらべても立ち遅れを感じることはありませんでした。
その代わり、何度もエラーを経験して、やり直すことも多かったです。
取引先も私の作った仕様書に満足してくれて「こういう動きをしていたのか」なんて新たな発見もありました。
中には「なぜこんな回りくどい処理をしているのか」と悩むこともありましたが、業務系アプリのプロジェクトではよくあることなので、そこには深入りしませんでした。。
まとめ
私の場合はこんな感じでアセンブラ言語の勉強を進めました。
仕事なので頑張ってやりましたが、個人でこれをやるかと言われると答えはノーですね。