[解決済み] アセンブルmov命令
2022-03-01 20:34:36
質問
cプログラムとアセンブリプログラムを比較して、アセンブリを学習しています。
以下はそのコードです。
.file "ex3.c"
.section .rodata
.LC0:
.string "I am %d years old.\n"
.LC1:
.string "I am %d inches tall.\n"
.text
.globl main
.type main, @function
main:
pushl %ebp //establish stack frame//
movl %esp, %ebp //move esp into ebp, all contents saved down stack//
andl $-16, %esp //16 from esp for local var space//
subl $32, %esp//stack frame reserving - 32 bytes//
movl $10, 24(%esp)
movl $72, 28(%esp)
movl 24(%esp), %eax
movl %eax, 4(%esp)
movl $.LC0, (%esp)
call printf
movl 28(%esp), %eax
movl %eax, 4(%esp)
movl $.LC1, (%esp)
call printf
movl $0, %eax
leave
ret
.size main, .-main
.ident "GCC: (Ubuntu 4.8.2-19ubuntu1) 4.8.2"
.section .note.GNU-stack,"",@progbits
この行の場合
movl $10, 24(%esp)
もし私が正しく理解していれば、10の値をespレジスタに移動させると言っていることになります。しかし、24は何をしているのでしょうか?移動させる値は"$"で表すので、espに移動しているとは思えません(と思う)。
どのように解決するのですか?
movl $10,24(%esp)
の意味は、10進10進の長さ(4バイト)のリテラルを、(1)で指されたアドレスで始まる4バイトのメモリ位置に移動させることです。
esp
レジスタに10進数24を足したもので、基本的にはローカル変数です。
関連
-
[解決済み】単純なforループのためのMIPSアセンブリ
-
[解決済み] MIPSの左シフト
-
[解決済み] x86 8086 アセンブリで 0-9 の範囲の乱数を生成する。
-
[解決済み] 8086アセンブリ言語での2つのレジスタのスワッピング(16ビット)
-
[解決済み] error: invalid effective address エラー:有効なアドレスがありません。
-
[解決済み] オブジェクトファイルのシンボルテーブルとリロケーションテーブル
-
[解決済み] BL命令ARM - その仕組み
-
[解決済み] movsbl 命令は何をするのですか?重複
-
[解決済み] この状況でのlwとbneは何を意味するのか?
-
[解決済み] ST(0)をEAXに移動させる方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】テスト %eax %eax のポイント【重複あり
-
[解決済み】Nasmエラー:オペコードとオペランドの無効な組み合わせ
-
[解決済み】なぜMIPS用のsubiオペコードは存在しないのですか?
-
[解決済み] error A2022: 命令オペランドは同じサイズでなければなりません。
-
[解決済み] アセンブリ言語 - Moduloはどのように行うのですか?
-
[解決済み] MIPSプログラムの中で`lw`と`sw`が実際にどのように機能するかを理解する
-
[解決済み] MIPS分岐実行順序(beqz)
-
[解決済み] ビットシフト演算子を使って10進数を2進数で表示するMIPS
-
[解決済み] objdumpの出力にあるdata16とはどういう意味ですか?
-
[解決済み] ESPレジスタとEBPレジスタとは何ですか?