LIST 52 ============================================================================ コンパイラ[MC]の出力したアセンブラソース[TEST2.ASM]の該当部分 ;char a[10]; ← 広域変数はあとで定義される ;int b[10];   (アドレスが上位であるため?) ;main(){ __main: ; char c1, c2[5]; ← char型変数のスタックへの確保 DEC SP DEC SP PUSH BC PUSH BC ; int d1, d2[5]; ← int型変数のスタックへの確保 PUSH BC EX DE,HL LD HL,0FFF6H ADD HL,SP LD SP,HL EX DE,HL ; c1 = 1; ← char型変数への定数のセット LD HL,11H ADD HL,SP PUSH HL LD HL,01H POP DE LD A,L LD (DE),A ; d1 = 1; ← int型変数への定数のセット LD HL,0AH ADD HL,SP PUSH HL LD HL,01H CALL mc_pint ; c2[0] = 1; ← char型配列への定数のセット LD HL,0CH ADD HL,SP PUSH HL LD HL,00H POP DE ADD HL,DE PUSH HL LD HL,01H POP DE LD A,L LD (DE),A ; d2[0] = 1; ← int型配列への定数のセット LD HL,00H ADD HL,SP PUSH HL LD HL,00H ADD HL,HL POP DE ADD HL,DE PUSH HL LD HL,01H CALL mc_pint ;} EX DE,HL ← 確保された変数領域の解放 LD HL,12H ADD HL,SP LD SP,HL EX DE,HL RET ORG RAM_TOP ← RAM領域への広域変数の確保 __a: DEFS 0AH ← char型は配列要素数だけ __b: DEFS 14H ← int型は配列要素数の2倍 ============================================================================