3

ポインターの勉強: C のアスタリスク演算子 * は、Z80 のアセンブラーの括弧に類似していると言えますか?

言い換えれば、この2つの文は似たような意味を持っていますか?

  LOAD (HL),a;       VS         *HL=a;
4

3 に答える 3

2

常に正しいとは限らないため、そのような仮定をしないことをお勧めします。あなたの言うことは場合によっては正しいかもしれませんが、これは一般化できないので、正しいとは思いません。これは、C がアセンブリよりも高水準の言語であるため、アセンブリにはない抽象化がいくつかあるためです。ポインターが 1 つのレジスターに収まらないデータを指している場合はどうなりますか? 構造体または共用体へのポインターの場合はどうなりますか?

コンパイラを使用して、さまざまなポインター型に対して生成されたアセンブリをチェックし、自分で確認することをお勧めします。

于 2013-07-25T07:55:24.960 に答える
-1

そうです。別の例 (実際のプログラムには型キャストがあるはずです!):

LD DE,HL     --      DE=HL
LD DE,(HL)   --      DE=*HL (add typecast: DE=(int *)*HL
LD DE,((HL)) --      DE=**HL (add typecasts: DE=(int *)**(int **)HL
于 2013-07-25T07:40:51.800 に答える