
以下のx86_32アセンブラの擬似命令の.alignの使い方ですが、
.align 4は、テキストデータを2の4乗=16バイト境界で整列させると言う意味だと思うのですが、
実際にgdbでデバッグしてみると、mainは下記のように0x5655618c番地から始まっていて、
16進表示の最下位ビットが0になっていない様なのですが、どうしてなのでしょうか?
何か勘違いをしている様であれば、御教示ください。
(デバッグ)
Breakpoint 1, 0x5655618c in main ()
1: x/i $pc
=> 0x5655618c <main>: mov $0xd5,%al
2: /x $eax = 0xf7fbcdc8
3: /x $ebx = 0x0
(x86_32アセンブラ)
.file "examreg.s"
.text
.align 4
.globl main
main:
movb $0xd5, %al # al = 213
movb $3, %bl # bl = 3
subb %bl, %al # al = al - bl
ret # end of program
No.3ベストアンサー
- 回答日時:
正確にいうと,
.align 4
は
・4バイト境界
・(1<<4)バイト境界
のどちらかの意味になる. 「どちらの意味になるか」はシステム次第.
どうしてもどちらかを強制したければ .align ではなく .p2align または .balig を使うべし.
No.2
- 回答日時:
> .align 4は、テキストデータを2の4乗=16バイト境界で整列させると言う意味だと思うのですが、
何も調べずに、alignが境界整列の意味だと言うことから自分で推測したのでしょうか?推測自体は悪い事ではない(むしろ好ましい)ですが、事実と整合しないときは、推測が間違っていたと言うことが明らかなので、事実に合うように考え直すか、推測するのをやめて調べるかしましょう。
.align 4 は4バイト境界です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
画像生成AIのプロンプトの作り...
-
Python... 環境設定 初心者です...
-
CSVファイルの複数行削除
-
Geminiフォーム 画像生成で 人...
-
数学、プログラミング、物理、...
-
pip --versionがエラーになる
-
pythonの実行に関する質問
-
OS入ってる機器のソフト・アプ...
-
パイソンのソースコードをChatG...
-
Python 3.12.2 か一番最新のパ...
-
プログラミングのやり方ざっく...
-
Pythonでの文字列からfloatへの...
-
VBSでテキストファイルの2行目...
-
バッチファイルが保存されてい...
-
JRのjsonファイルって使って大...
-
10進数から2進数に変換 例 185 ...
-
PowerAutomateで運賃検索がした...
-
python 機械学習 文字画像認識
-
VBAでパワーシェルを実行したい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
画像生成AIのプロンプトの作り...
-
Geminiフォーム 画像生成で 人...
-
CSVファイルの複数行削除
-
数学、プログラミング、物理、...
-
pip --versionがエラーになる
-
Python... 環境設定 初心者です...
-
pythonの実行に関する質問
-
Python 3.12.2 か一番最新のパ...
-
OS入ってる機器のソフト・アプ...
-
パイソンのソースコードをChatG...
-
Google ColaboでGUI作成
-
VBAでパワーシェルを実行したい...
-
HTMLソースが表示のページのも...
-
ネットワークフォルダの中身を...
-
Pythonのエラーメッセージをコ...
-
Webサイト内に埋め込んだmp4動...
-
google Colabでmatplotlibの描...
-
初心者powershellのPS1ファイル...
-
Pythonについて。
おすすめ情報