私はこのCプログラムを持っています。
#include<stdio.h>
char arr[65];
int main()
{
return 0;
}
次のコマンドでgcc
onでコンパイルすると:linux
gcc -Wall -save-temps arrNewGlobal.c -o arnewGlobal
次のアセンブリコードを取得します。
.file "arrglobal.c"
.comm arr,65,32
.text
.globl main
.type main, @function
..........
ドキュメントによるas
と、.comm はサイズ 65 の初期化されていないメモリ ブロックを 32 ビットの位置合わせで割り当てました (つまり、アドレスの最下位 5 桁がゼロになります)。
私が理解していないのは、このアドレスがこのメモリブロックの開始アドレスを意味するのか、またはこのメモリの各バイトがゼロに等しい最下位5ビットのアドレスを持つ必要があるのか ということです(各バイトアドレスがジャンプするように)
また、念のために言っておきますが、このアドレスは物理アドレスではなく、仮想アドレスですか?