No.2ベストアンサー
- 回答日時:
アセンブラ入門するならx86は大変な相手ですが大丈夫ですか?PICとかH8と簡単なマイコンから始めたほうが楽ですよ。
それと他のプログラミング言語は経験済みでしょうか?>アセンブラで、LEAの逆は何でしょうか?
>LEA reg32, mem
LEAはアドレス計算してロードする命令ですが、逆ってどういう意味でしょう?アドレスをどうしたいのですか?
>あと難しい話ですが、今時のパソコン(Althon64X2やCore2DuoやXeon)など複数コアなどの時代で、アセンブラで覚えるべき内容は386や486と比べてどう違うのでしょうか?
単純に高速なプログラムをアセンブラ書けるって(これだけでも相当優秀ですが)知識では太刀打ちできません。OSの豊富な知識が必要になります。WindowsやLinuxはマルチコアの制御を特権レベル(意味がわかります?)でOSが掌握しています。
CPUがOSと関係しているかイメージできないとマルチコアのプログラミングは出来ません。CPUの持つ仮想記憶、特権レベル、マルチコア用の機能を理解する必要があります。
ただし、それを使う側にとって簡単にするOPENMPなどの技術もあります。でも、あえてアセンブラでやりたいとの事ですので難しいことをしたいと言う前提で書かせてもらいました。
>機械語のパイプラインやキャッシュなどの概念も知りたいので、詳しい書籍も探しています。
どの本が良いかは、本屋で自分で読んでみてください。
とりあえず、まずアセンブラ入門の本。
http://www.cqpub.co.jp/hanbai/books/33/33421.htm
有名なのはこの本「独習アセンブラ」
http://www.amazon.co.jp/%E7%8B%AC%E7%BF%92%E3%82 …
名著「はじめて読む8086―16ビット・コンピュータをやさしく語る」
http://www.amazon.co.jp/%E3%81%AF%E3%81%98%E3%82 …
名著「はじめて読む486―32ビットコンピュータをやさしく語る」
http://www.amazon.co.jp/%E3%81%AF%E3%81%98%E3%82 …
CPUのアーキテクチャならこの本かな「マイクロプロセッサ・アーキテクチャ入門―RISCプロセッサの基礎から最新プロセッサのしくみまで」
http://www.amazon.co.jp/%E3%83%9E%E3%82%A4%E3%82 …
で、パイプラインとかの難しい本も紹介しておきます。
「コンピュータの構成と設計~ハードウエアとソフトウエアのインタフェース 第3版 (上) 」
http://www.amazon.co.jp/%E3%82%B3%E3%83%B3%E3%83 …
「コンピュータの構成と設計~ハードウエアとソフトウエアのインタフェース 第3版 (下)」
http://www.amazon.co.jp/%E3%82%B3%E3%83%B3%E3%83 …
CPUの最新技術のナナメ読みがしたい場合は、この人の連載がお勧め
http://pc.watch.impress.co.jp/docs/article/backn …
>あと命令セット(+その命令のスピード?)など詳しく書かれている本も探しています。
命令のサイクル(ステート)数は、CPUのコア毎に違いますのでCPU開発メーカーの資料を読みましょう!
ただし、パイプラインで処理されるので必要サイクル数と実際の動作サイクルは食い違います。その上、パイプラインに入る命令の並び方次第でストール等が発生する場合もあり直感的には処理時間は見積もれません。RISCチップならもう少し簡単ですが。
インテルの日本語の情報が入手出来るサイトです。
http://www.intel.co.jp/jp/download/index.htm
「IA-32 アーキテクチャー」ってところからほしい資料を探しましょう。
No.4
- 回答日時:
>LEAはレジスタに変数の値を入れるですが、レジスタの値をグローバル変数に入れたいです。
mov命令でメモリに値を書き込みます。
下記のサイトを見てみてください。
http://ray.sakura.ne.jp/asm/index.html
>特権レベルも絡むのですか?
アセンブラで直接マルチコアを制御しようとすれば絡みます。
OS任せにすれば絡みませんよ。
>最初はマシン語あきらめていましたが、私の下手糞なマシン語でもVCコンパイラより2倍早くなったので、これはいけると思ったからです。
夢でも見ているのでしょうか?
>セレロン(メモリ1G)では効果が見れなかったのですが、アスロン64(メモリ2G)で効果ありました。
言語が使わないマシン語を駆使した場合は、そのぐらい速度差が出る可能性が無いことは無いですが、現在のコンパイラの最適化レベルはかなり優秀です。
VCのリリースコンパイルしたプログラムとの速度比較はされましたか?デバックのプログラムはむちゃくちゃ遅いですよ。
遅いマシンで差が無く、アスロンで高速化したのも不思議です。キャッシュに助けられた気がしますが。
No.3
- 回答日時:
追加質問。
>マシン語を覚えたい
の目的を聞かせてもらえますか?
(1)コンピュータ(CPU)の本質を理解したい。
(2)C言語などの処理速度に不満で、マシン語なら高速なプログラムを書けると聞いたので挑戦したい。
(3)OSを自作したいので、まず基礎知識を勉強している。
(4)なんとなくカッコ良いから。
(5)その他。
この回答への補足
LEAはレジスタに変数の値を入れるですが、レジスタの値をグローバル変数に入れたいです。
特権レベルも絡むのですか?
どれも当てはまりますが、特には(2)です。
最初はマシン語あきらめていましたが、私の下手糞なマシン語でもVCコンパイラより2倍早くなったので、これはいけると思ったからです。
夢でも見ているのでしょうか?
セレロン(メモリ1G)では効果が見れなかったのですが、アスロン64(メモリ2G)で効果ありました。
No.1
- 回答日時:
> マシン語を覚えたい
マシン語というと別名「マシンコード」または単に「コード」と呼ばれる
16進数のことを指しますが、本気でこれを覚えたいということでしょうか?
もしくは
> LEA reg32, mem
という「アセンブリ言語」(通称「アセンブラ」...厳密には「アセンブラ」は
「アセンブリ言語」から「マシンコード」を生成するツールのこと)
を覚えたいのでしょうか?
少し前の32bit CPU のマシンコードには少し触れたことはあるものの
現在の64bit CPU のそれは知りませんが、
前者でしたら、8bit CPU の時代ならまだしも、64bit 可変長命令のCPUのそれを
覚えるのはかなり大変だと思います、覚えたい理由、努力対メリットに
よってはあまり意味ないかも。
書籍を探されてるならそのうち見つかるでしょうけれど、
ずばり本屋さんで片っ端から覗いてみるといいです。
文章がヘタクソな本もありますからね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 歴史学 平安時代の庶民、農民の暮らしが知りたいです わかりやすい書籍や漫画やブログサイトやドラマなどはありま 7 2023/01/05 09:38
- その他(教育・科学・学問) 英語できません、助けてください… 3 2022/11/14 23:59
- 英語 英語勉強 4 2022/07/14 21:01
- その他(言語学・言語) 外国語流暢に話せる人って 一回、脳内で瞬時に日本語から外国語に訳 3 2023/03/30 02:06
- その他(コンピューター・テクノロジー) 量子コンピュータの動作原理がわかりません。同じビットが、1でも0でも有って良いだろうか? 3 2023/02/04 03:20
- 英語 英語で学ぶ数学YouTubeについて。 タイトル通りではあるのですが、英語で数学を学べるチャンネルを 4 2022/08/20 01:54
- 予備校・塾・家庭教師 武田塾について。通信制高校3年です。 中学から含め全く勉強しませんでした。 高校は母も病気気味だった 2 2022/08/11 20:46
- 哲学 《光あれ》という命令法は どういう実態か 1 2023/01/24 17:57
- その他(暮らし・生活・行事) 小学校卒業までのお話で覚えてるものは? 6 2022/08/21 19:10
- 日本語 <代名詞><指示詞>という誤り 4 2022/04/01 11:06
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ライン数とステップ数の違いは?
-
[C言語→アセンブリ言語]はどう...
-
アセンブラからC言語に変換する...
-
実行ファイルからソースはみれる?
-
GCCの.cfi_系について
-
本気でマシン語を覚えたい
-
MPLAB IDE v8.92アセンブラにつ...
-
計算機科学 計算機科学に詳しい...
-
アセンブラ、AVRマイコンのおす...
-
エンディアンについて。
-
MIPSアセンブラ言語について
-
ニーモニックコードを使って割...
-
組み込みソフトのわかりやすい...
-
アセンブラのコマンドについて
-
SHの命令の意味について
-
nasmとgccのコマンドで得られる...
-
0xffffとは?
-
エクセルVBAのIf,Then 構...
-
8ビットのデータの、先頭ビット...
-
レジストってなんですか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ライン数とステップ数の違いは?
-
アセンブラからC言語に変換する...
-
PICに書き込むプログラムや変数...
-
[C言語→アセンブリ言語]はどう...
-
実行ファイルからソースはみれる?
-
【H8マイコン】HEWで埋め込みア...
-
素数を求めるプログラム(アセン...
-
アセンブラエディタ
-
アセンブラ言語がわかりません。
-
アセンブラで割り算
-
MPLAB IDE v8.92アセンブラにつ...
-
PICはアセンブラとC言語のどち...
-
PICのアセンブラからC言語へ変...
-
アセンブラ言語で質問です。
-
アセンブラのLA
-
データコピー
-
void __cdeclなど_
-
バイナリの実行ファイルをgccを...
-
PDP-11のアセンブラ課題
-
PC-9801 MS-DOSでの実行ファイ...
おすすめ情報