web-dev-qa-db-ja.com

Linuxプラットフォームでx86アセンブリを学ぶための最良の方法は何ですか?

アセンブリプログラミングの予備知識がないので、Linuxプラットフォームでx86アセンブリをコーディングする方法を学びたいと思います。しかし、私は自分自身を教えるための良いリソースを見つけるのに苦労しています。

Art of Assemblyの本は見栄えがしますが、HLAを教えています。私は、ある方法を学び、それをもう一度やり直すことに興味はありません。また、RISCアーキテクチャにはアセンブリ用のリソースが優れているようですが、残念ながら、学習できるRISCプロセッサがありません。誰か提案がありますか?

24
user87630

http://asm.sf.net x86以外のアーキテクチャに関する資料がいくつかあります。

RISCアーキテクチャに興味がある場合は、Linuxを Qem で実行できます。 Qemuは、PowerPC、ARM、MIPSなどのいくつかのRISCアーキテクチャをエミュレートします。すぐに使用できるQemuハードディスクイメージを見つけることができる場合があります ここ

RISCアーキテクチャを試す別の方法は、gdbの組み込みシミュレータを使用することです。

10
sigjuice

アセンブリ言語のステップバイステップ は非常に優れたリソースであることがわかりました。 Linuxアセンブリを対象としたセクションが後ろにあります。

9
fARcRY

アセンブリレベルのプログラミングの学習には、基本的な概念と特定のアーキテクチャの2つの部分があります。 asmプログラミングに触れたことがない場合は、最初にシンプルで小さなアーキテクチャで基本を理解することを強くお勧めします。実際のハードウェアには直接適用できない可能性があります。多くの人が「TheArtof ...」のような特定のリソースを指している場合は、それをもう一度見て、アーキテクチャとは何か、基本的なツール(asm、デバッガー、disasmなど)の使用方法を学びます。

それらが邪魔にならないようになったら、より高度な命令セットの調査を開始できます。 x86のアーキテクチャと命令セットはかなり複雑で、脳をねじる方法はたくさんあります。それに取り組む前に、簡単なことを学んでください。

2
Shannon Nelson

おそらく、 The Art of Assembly Language Programming およびそのWebサイトの他のリソースよりもはるかに優れているものはありません。

2
Charlie Martin

x86アセンブリは、実際にはIntel言語であり、IntelチップとDOSを実行するWindowsプラットフォームで最もよく学習されます。

WinXPのようなものがある場合、ユーザーにasmの基本を示し、ユーザーがコマンドを逆にしてコードをリアルタイムで微調整できるようにするDOSインタープリターがあり、コードをブロックにアセンブルして、通訳

それは「ケトマン通訳」と呼ばれていました

これはDOSasm専用でしたが、すべてのレジスタとフラグで何が起こるかを確認でき、まったく無知な個人がロジックを処理できるため、非常にユニークでした。

1
ady

私が学校で知っている多くの人々がこの本を嫌っていたとしても、とにかくそれをリンクします:

http://www.Amazon.com/Professional-Assembly-Language-Programmer/dp/076457901

私がこの本を使用した主な理由は、Linuxでx86をGNUアセンブラで使用しているためです。この最後の点は、私が学校のラボでそのアセンブラを使用する必要があったため、そうでない場合に役立ちました。認識-構文はIntel構文とは異なります。

また、高級言語がアセンブリ言語にコンパイルされる方法を学ぶことは、私が前進するのに本当に役立ったことを付け加えておきます。

1
Mr. Shickadance

http://www.emu8086.com を試してください。これは、アセンブラとデバッガを備えたWindowsでホストされる8086エミュレータです。チュートリアルが付属しています。

0
anon

私は8086に関する本からx86アセンブラーを学びました(現在の名前は思い出せません...明らかにかなり古く、紫色です。本当に興味があれば、家に帰ったら掘り下げることができます) 。それはあなたに16ビットのものだけを教えるでしょう、より高度な32ビットのもののために私はいくつかのチュートリアルをオンラインで読みました。私は64ビットをやったことがありません。少なくとも最初は、レベルが低すぎるため、ターゲットにしているOSはおそらく問題ではありません...本当に気になるのはBIOSだけです。テストシステムにアクセスできない場合は、他の人が言及しているように、エミュレーターがおそらく良い選択ですが、ディスクリートパーツからあまり問題なく8088または8086を自分で構築することもできます。チュートリアルと回路図はオンラインで簡単に見つけることができます。費用は50ドル未満で、すばらしい学習体験です。基本的に、マザーボードを最初から作成していることになります。

X86アセンブリにあまり執着しておらず、RISCを学びたい場合は、 Microchip PICマイクロコントローラーをお勧めします。スターターキットは50ドル未満で購入できます(私が持っているPICKit 1は、Linuxでも動作します)。彼らは、愛好家を対象とした広範なドキュメントとたくさんのサードパーティのチュートリアルを持っています。

0
rmeador

Guide-Assembly-Language-Programming-in-Linux 本のコピーを入手することを忘れないでください。

0
avar