2009-04-06 22 views
22

私はアセンブリプログラミングに関する事前知識がなく、Linuxプラットフォームでのx86アセンブリのコーディング方法を学びたいと考えています。しかし、私は自分で教えるための良いリソースを見つけるのは難しいです。Linuxプラットフォームでx86アセンブリを学ぶ最も良い方法は何ですか?

組立図書はよく見えますが、HLAを教えています。私は一方的な方法を学ぶことに興味がなく、その後もう一度それを再学習します。 RISCアーキテクチャーはアセンブリのためのより良いリソースを持っているようですが、残念ながら私はRISCプロセッサーを学ぶ必要はありません。誰にも何か提案はありますか?

答えて

10

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

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

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

2

おそらくThe Art of Assembly Language ProgrammingとそのWebサイトの他のリソースよりも優れたものはありません。

+2

申し訳ありませんが、私がそれを使用できない場合、HLAの学習のポイントは何ですか? – user87630

+1

それは使えないのですか?無料ダウンロード。いずれにせよ、この本は、HLAマクロがあなたに与える構造をどのようにコード化するかを含む、通常の命令セットを通る。 –

+5

私はこの本を読んでいましたが、難しいと感じて、HLAが途中で見つけました。それはポルトガル語を学ぶことによってスペイン語を学ぶようなものでした。 FASMを使って教える良い本はありますか? –

9

Assembly language step-by-stepは非常に優れたリソースであることがわかりました。それは、Linuxアセンブリを目指している部分もあります。

+1

+1と著者は新しい版で作業しています。彼は最近、「私は第13章の第9章の2/3、およそ175,000のうちの113,000語のうち、約2/3に相当し、6月30日までに完了しなければなりません。 更新についてはhttp://www.contrapositivediary.com/を参照してください。 – dwc

0

試作http://www.emu8086.com Windowsベースの8086エミュレータで、アセンブラとデバッガを使用してください。チュートリアルが付属しています。

+3

これは、実行中のウィンドウを意味します。それは尋ねる大きな犠牲です。 –

+1

@CharlieMartin「ウインドウを走らせる」「大きな犠牲」私を笑わせた。長いライブLinux&Unix! – NlightNFotis

-3

アセンブリ言語のアート

+3

あなたはその質問を読んだことがありますか?それとも答え? –

0

プログラミング私はそれが明らかにかなり古い、と紫だった私は、現時点での名前を思い出すことができない8086(...についての本からのx86アセンブラを学びました。あなたの場合家に帰ると本当に興味があります)。それはあなたに16ビットのものしか教えません。より高度な32ビットのものについては、オンラインでチュートリアルを読んでいます。私は64ビットをしたことはありません。少なくとも最初は、あまりにも低レベルなので、おそらく対象としているOSは問題ではないでしょう... BIOSは本当に気にかけています。テストシステムにアクセスできない場合は、おそらく他の人が触れたように、エミュレータが良い選択肢かもしれませんが、8088や8086のようなディスクリート部​​品をあまり使わなくても自分自身で構築することができます。オンラインでチュートリアルや回路図を簡単に見つけることができます。費用は50ドル以下で、素晴らしい学習経験です。マザーボードを最初から構築しています。

もしあなたがあまりにもx86アセンブリに縛られておらず、RISCを学びたいなら、MicrochipのPICマイクロコントローラをお勧めします。 $ 50未満のスターターキット(私が持っているPICKit 1、Linuxでも動作します)を手に入れることができます。彼らは豊富なドキュメンテーションと豊富なサードパーティのチュートリアルを愛好家向けに用意しています。

+0

スターターキットは面白く聞こえます。私はそれを見るかもしれない。ありがとう。 – user87630

2

アセンブリレベルプログラミングの学習には、基本的な概念と具体的なアーキテクチャという2つの要素があります。 asmプログラミングに慣れていない人は、シンプルで小さなアーキテクチャーで基本を理解することを強くお勧めします。実際のハードウェアに直接適用することはできません。多くの人々が "The Art of ..."のような特定のリソースを指しているなら、それをもう一度見て、それを使ってアーキテクチャが何であるか、基本的なツール(asm、デバッガ、災害など)の使い方を学んでください。

これらの問題が解決したら、さらに高度な命令セットを調べ始めることができます。 x86アーキテクチャと命令セットはかなり畳み込まれており、あなたの脳をひねるための多くの曖昧な方法があります。

0

私は学校で知っている多くの人がこの本を嫌っていても、私はとにかくそれをリンクします:それはGNUアセンブラでLinux上のx86を使用していますので、私はこの本を使用

http://www.amazon.com/Professional-Assembly-Language-Programmer/dp/0764579010

主な理由です。その最後のポイントは、私が学校のラボでそのアセンブラを使用しなければならなかったので助けてくれました。あなたが気づいていない場合、シンタックスはインテル構文とは異なります。

また、高水準言語がアセンブリ言語にコンパイルされていることが実際にどのように動いてきたかを覚えておきます。

1

のx86アセンブリは本当に最高のIntelチップとあなたはWinXPのようなものを持っている場合はDOS

ないWindowsプラットフォームで学んだインテル言語ですが、ユーザーにASMの基本を示したDOSインタプリタにするために使用そして、コマンドを逆にし、リアルタイムにコードを微調整するために、ユーザは、それはそれはDOSのためだった

「Ketmanインタプリタ」と呼ばれていました

インタプリタ上で実行することができブロックにコードをアセンブル許可asmだけですが、それはかなりユニークでした。なぜなら、すべてのレジスタとdフラグを使用して、完全に無関係の個人が論理上のハンドルを得ることができます

関連する問題