- アセンブラ初心者スレッド
718 :デフォルトの名無しさん[sage]:2015/07/07(火) 06:23:33.54 ID:B+1kKjNv - CALLやPUSH/POPなどはMOVやJMP、INCといった別の命令の組み合わせで動いていると何処かで読んだんですが、
そうするとCALLを使わず自分で好きなレジスタを使ってスタックを管理しても有意差は無いと考えていいんでしょうか? それともCALLやPUSH等の専用の命令を使うと1Hzに収まるとかそういう違いがあるのでしょうか?
|
- アセンブラ初心者スレッド
724 :デフォルトの名無しさん[sage]:2015/07/07(火) 19:56:39.94 ID:B+1kKjNv - >>719-720
ありがとうございます。書き忘れてましたが64bit用のオペコード使って色々書こうと思っていた所で、 一部の命令を覚えないで済むと慣れるまでは楽出来るかなと思ってたのですが、やはり最初から全ての命令を含めて組み立てるべきなんですね。 あと追加で申し訳ないんですが、ES,SS,CS,DS等へのPUSH、POPが64bit modeだと無効となっているんですが、 これはリアルモードの時は使用できて、64bit modeの時に無効になるという解釈でいいんでしょうか? それとも64bitCPUには、それらのセグメントレジスタ自体が乗ってないんでしょうか?
|
- アセンブラ初心者スレッド
728 :デフォルトの名無しさん[sage]:2015/07/07(火) 22:24:16.63 ID:B+1kKjNv - >>726
ありがとうございます。 なんとなく「乗ってないという事はなさそうだな」という程度にしかまだ理解できませんが、 これから勉強してはっきりと理解できるように頑張ります。 >>727 jmp命令だとパイプラインの中身がflushされるそうですが、callだとそれを防げるという理解でよろしいでしょうか。 早くテスト出来る環境を整えて色々な方法で比べてみたいと思います。
|