
以下のCをx86_32のアセンブラに落とすと下記の様になるのですが、アセンブラのアセンブラ指令の
.zero 4の意味ですが、
ここはCでは8バイトのdwordにデータ12345Lを入れているので、最初の4バイトに.longで12345を入れて、後の4バイトに.zero 4で0を入れているという理解で良いのでしょうか?webを検索してみたのですが、アセンブラ指令で.zero nを説明してくれているサイトが見つかななかったのですが、良いサイトがある場合は、教えて下さい。
(C言語)
1 /* Program ex3-75.c */
2 //#include <stdio.h>
3
4 union un_def {
5 struct st_def {
6 int dn;
7 int up;
8 } word;
9 long dword;
10 }un_dat = {12345L};
11
12 int main() {
13 //printf("%ld\n", un_dat.dword);
14 un_dat.word.dn = 123;
15 un_dat.word.up = 456;
16 //printf("%d %d\n", un_dat.word.dn, un_dat.word.up);
17 }
(x86_32アセンブラ)
1 .file "ex3-75.c"
2 .text
3 .globl un_dat
4 .data
5 .align 4
6 .type un_dat, @object
7 .size un_dat, 8
8 un_dat:
9 .long 12345
10 .zero 4
11 .text
12 .globl main
13 .type main, @function
14 main:
15 .LFB0:
16 .cfi_startproc
17 pushl %ebp
18 .cfi_def_cfa_offset 8
19 .cfi_offset 5, -8
20 movl %esp, %ebp
21 .cfi_def_cfa_register 5
22 movl $123, un_dat
23 movl $456, un_dat+4
24 movl $0, %eax
25 popl %ebp
26 .cfi_restore 5
27 .cfi_def_cfa 4, 4
28 ret
29 .cfi_endproc
30 .LFE0:
31 .size main, .-main
32 .ident "GCC: (Debian 8.3.0-6) 8.3.0"
33 .section .note.GNU-stack,"",@progbits
No.3ベストアンサー
- 回答日時:
gccが使っている gas (GNU assembler)ですね。
公式リファレンスに説明があります。
https://sourceware.org/binutils/docs/as/index.html
.zeroのページは、https://sourceware.org/binutils/docs/as/Zero.html
一般に、公式リファレンスのURLは、Wikipeaiaで調べると、
(今回は https://ja.wikipedia.org/wiki/GNU%E3%82%A2%E3%82 … )
その最後の方の外部リンクに載ってます。公式リファレンスがあればですが。
No.2
- 回答日時:
ほそく.
「8バイトのdwordにデータ12345Lを入れている」のところ, どうして「『8バイトのdword』に『データ12345L』を入れている」と解釈した?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
プログラミング 素数か素数ではないか判断するプログラミングで、写真のようなプログラミングを打ったとき
C言語・C++・C#
-
関数ポインタの高速化のメリット
C言語・C++・C#
-
変数のスコープ
C言語・C++・C#
-
-
4
int16_t の _t は何?
C言語・C++・C#
-
5
C言語でファクト関数を使わずに階乗を計算する方法はありますか?できれば教えてください
C言語・C++・C#
-
6
Cのオブジェクトファイルの逆アセンブル
C言語・C++・C#
-
7
c言語の問題の説明、各所ごとに
C言語・C++・C#
-
8
Cのコンパイルでコメントアウトをそのままオブジェクトに保持したい
C言語・C++・C#
-
9
大量のデータを読み込んで表示する速度を改善したい
C言語・C++・C#
-
10
C言語について。
C言語・C++・C#
-
11
いまc言語の標準ライブラリ文字列を勉強しているのですがいまいちわかりません。 strcmpとmemc
C言語・C++・C#
-
12
Cのdoubleの浮動小数点表示について
C言語・C++・C#
-
13
プログラミング 2つの整数を読み込んで、等しければ 「二つの値は同じです」と表示し、そうでなければ,
C言語・C++・C#
-
14
いまc言語を独学で勉強しているのですがいまいちわかりません。 https://monozukuri-
C言語・C++・C#
-
15
C言語の質問です。バイナリ形式で保存されたWindows Bitmap形式の画像ファイルを読み込み、
C言語・C++・C#
-
16
C言語について。
C言語・C++・C#
-
17
Javaって使いますか、もう古いですか?C++とどっちがいいですか?分析でC++使う授業ありましたけ
C言語・C++・C#
-
18
C言語について。
C言語・C++・C#
-
19
Cの関数の引数のconst *charについて
C言語・C++・C#
-
20
c言語
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語関数違いについて。
-
C言語について。
-
ストリーム 意味について。
-
C言語について。
-
C言語 解答について。
-
バッファリングについて。
-
#include <stdio.h> #include <...
-
これを教えてください
-
C言語について。
-
C言語 バッファについて。
-
C言語 ストリームについて。
-
擬似コード
-
#include <stdio.h> #include <...
-
c#のTLS1.2での通信について
-
擬似コード
-
サブルーチンを使った再帰的な...
-
C#でゲームのチートを作ること...
-
C# でソフト開発をした事のある...
-
TCP/IP通信時のサーバーからの受信
-
大量のデータを読み込んで表示...
おすすめ情報