アカウント名:
パスワード:
286時代は前置の方が早いと聞いていたので、前置が習慣になった。今時パソコン向けならどっちでもいいと思うけどね。
68000使いだと、デクリメントは前置、インクリメントは後置、ですね。
スタックの処理は通常、push時: スタックポインタをデクリメントしてから、スタックポインタの指すメモリに書き込みpop時: スタックポインタの指すメモリを読み込んでから、スタックポインタをインクリメントという処理になります。で、スタック処理を高速化するために、68000ではこれらの処理は一命令で処理できるようになっていました。
でもって、68000はスタックポインタも汎用レジスタの一つ、という直交性の高い設計なので、汎用レジスタに対しても前置デクリメントと後置インクリメントは一命令で処理できるからちょっと速い。#正確に言えば、アドレスレジスタについての話なので、「*--p」「*p++」が一命令処理。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲは一日にしてならず -- アレゲ研究家
intel者 (スコア:0)
286時代は前置の方が早いと聞いていたので、前置が習慣になった。
今時パソコン向けならどっちでもいいと思うけどね。
motorola者 (スコア:1)
68000使いだと、
デクリメントは前置、
インクリメントは後置、
ですね。
スタックの処理は通常、
push時: スタックポインタをデクリメントしてから、スタックポインタの指すメモリに書き込み
pop時: スタックポインタの指すメモリを読み込んでから、スタックポインタをインクリメント
という処理になります。
で、スタック処理を高速化するために、68000ではこれらの処理は一命令で処理できるようになっていました。
でもって、68000はスタックポインタも汎用レジスタの一つ、という直交性の高い設計なので、汎用レジスタに対しても前置デクリメントと後置インクリメントは一命令で処理できるからちょっと速い。
#正確に言えば、アドレスレジスタについての話なので、「*--p」「*p++」が一命令処理。