アカウント名:
パスワード:
非再帰モードとか、引数のレジスタ渡しとか、charはcharのまま処理するとかの非標準仕様のおかげで(Z80はスタックにおいた変数なんぞまともには扱えない)、Z80でまともに動くCプログラム(ゲームも)を記述することが出来ました。LSI-Cと比べたら、BDS-CとかHiTech-Cとかお呼びじゃなかった。
ただ、引数のレジスタ渡しの際、charかintかで使うレジスタが違うので引数の型には神経を使わされました。
ver2.0では、ANSI-C準拠でプロトタイプ宣言つかえるようになって上記引数の心配が消えたのでホントありがたかった。
Z80はスタックにおいた変数なんぞまともには扱えない
インデクスレジスタ使えばそこそこ便利に扱えるよ。つーかver.2.0とかの初期の頃のLSI CはZ80のコード吐かなかったじゃん。
>インデクスレジスタ使えばそこそこ便利に扱えるよ。
インデックスレジスタは激遅です。
>つーかver.2.0とかの初期の頃のLSI CはZ80のコード吐かなかったじゃん。
Z80のLSI-Cがまず売り物としてあってLSI-C86がフリーで出たのはその後です。
8080の命令でスタックフレームこさえるよか全然効率的だよ。それより早くしたいなら static に割り付ければ、LSI-C の nonrec と実質同じだしな。
ver.2.0とかの初期の頃は8080用だよ。
8080LXI H,nnnn ; 10DAD SP ; 11ADD M ; 7; total 28
Z80ADD A,(IX+nn) ; 19
staticLXI H,nnnn ; 10ADD M ; 7; total 17
こんなもんか
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
にわかな奴ほど語りたがる -- あるハッカー
Z80用のLSI-Cはお世話になりました (スコア:1)
非再帰モードとか、引数のレジスタ渡しとか、charはcharのまま処理する
とかの非標準仕様のおかげで(Z80はスタックにおいた変数なんぞまともには扱えない)、
Z80でまともに動くCプログラム(ゲームも)を記述することが出来ました。
LSI-Cと比べたら、BDS-CとかHiTech-Cとかお呼びじゃなかった。
ただ、引数のレジスタ渡しの際、charかintかで使うレジスタが違うので
引数の型には神経を使わされました。
ver2.0では、ANSI-C準拠でプロトタイプ宣言つかえるようになって
上記引数の心配が消えたのでホントありがたかった。
Re: (スコア:0)
Z80はスタックにおいた変数なんぞまともには扱えない
インデクスレジスタ使えばそこそこ便利に扱えるよ。つーかver.2.0とかの初期の頃のLSI CはZ80のコード吐かなかったじゃん。
Re: (スコア:0)
>インデクスレジスタ使えばそこそこ便利に扱えるよ。
インデックスレジスタは激遅です。
>つーかver.2.0とかの初期の頃のLSI CはZ80のコード吐かなかったじゃん。
Z80のLSI-Cがまず売り物としてあって
LSI-C86がフリーで出たのはその後です。
Re: (スコア:0)
>インデクスレジスタ使えばそこそこ便利に扱えるよ。
インデックスレジスタは激遅です。
8080の命令でスタックフレームこさえるよか全然効率的だよ。それより早くしたいなら static に割り付ければ、LSI-C の nonrec と実質同じだしな。
Z80のLSI-Cがまず売り物としてあって
LSI-C86がフリーで出たのはその後です。
ver.2.0とかの初期の頃は8080用だよ。
Re:Z80用のLSI-Cはお世話になりました (スコア:1)
8080
LXI H,nnnn ; 10
DAD SP ; 11
ADD M ; 7
; total 28
Z80
ADD A,(IX+nn) ; 19
static
LXI H,nnnn ; 10
ADD M ; 7
; total 17
こんなもんか