- ベストアンサー
マイクロプロセッサZ80の最適化方法とは?
- マイクロプロセッサZ80に関する課題として、アセンブラプログラムの最適化があります。
- 具体的な課題として、命令数の削減をする必要があります。
- 最適化を行うためには、プログラムコードを見直し、冗長な命令を省略するなどの方法を取ることが重要です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
「命令数の削減」であれば、たぶん1命令しか削減できない。 LD A , (5100H)ーーーーー 3A0051 LD B , Aーーーーー 47 LD A , (5101H)ーーーーー 3A0151 LD C , A ーーーーー 4F ADD A , B ーーーーー 80 LD (5200H) , A ーーーーー 320052 LD A , Bーーーーー 78 SUB A , C ーーーーー 91 LD (5201H) , Aーーーーー 320132 JP 2006H ーーーーー C30620 「バイト数の削減」であれば、他にも手はあるが、逆に命令数が増えてしまい題意に沿わない。
その他の回答 (2)
- 86tarou
- ベストアンサー率40% (5093/12700)
先ず、5100H番地と5101H番地の和と差を、5200H番地と5201H番地それぞれに格納するということでよろしいでしょうか? 命令数の削減というのがニーモニック行数の削減なのか、マシン語数なのか、それとも所要クロック数なのかで変わってきます。例えば… ld hl,5101h ld a,(hl) dec hl add a,(hl) ld (5200h),a ld a,(hl) inc hl sub a,(hl) ld (5201h),a jp 2006h とすれば、所要クロック数は変わりませんが、行数は1行、マシン語数は3バイト減ります(計算間違いがあればすみません)。なので、何を目的とするかで変わってくるかと思います。単に命令の行数を減らしたいのか、メモリ上の命令の占める割合を減らしたいのか、処理スピードを上げたいのかということです。
お礼
たぶんニーモニック行数のことだと思います。質問に書いた命令の種類の範囲でニーモニック行数を減らすことは可能ですか?
フローチャートを描いて、その流れを事業仕分けして無駄を省きなさい
お礼
こんなに早くお答えいただき、とても感謝しています。ありがとうございました。