質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
アセンブリ言語

アセンブリ言語とは、機械語を人間にわかりやすい形で記述した低水準言語です。

Q&A

2回答

2515閲覧

アセンブリ言語の intel記法 について

GuielNo4

総合スコア88

アセンブリ言語

アセンブリ言語とは、機械語を人間にわかりやすい形で記述した低水準言語です。

1グッド

0クリップ

投稿2018/08/26 05:04

編集2018/08/26 13:16

解決したいこと

intel記法 に関する参考書を探しています。

経緯

コードのメンテナンスで intel記法のx86用アセンブリソース を含むプロジェクトを見つけたので、コードの解読を行っております。
ニーモニックの理解は全く問題なさそうなのですが、
疑似命令やアッセンブル制御ルール、シンボルルールに関しては
調べるのに時間がかかりそうな気配がありましたので、
ここで質問させてもらうことにしました。

頂きたいアドバイス

intel記法について書かれている参考書をご存知の方がいらっしゃいましたら、
アドバイス頂けると助かります。

宜しくお願い申し上げます。

追記

アセンブルは NASM を利用しています。
調べるのに時間がかかりそうと判断している理由は
コードで

tmp: tmp00 dw 0 Tmp16: dw 0 TmpFlag: db 0

とコロンの有無がどうゆうことになるのか、
また、
times疑似命令の「行の先頭」が指しているとして、
具体的に推測はできているのですが、確信するまでには至れず、
ネットで調べても「まとまった情報」がなく、
得られる断片的な情報より類推しながら時間をかけないと解読できなそうだったからです。

イメージとしては
「プログラミングの力を生み出す本」( AT&T記法 + gas ) のようなもので、

intel記法 + NASM

を用いた参考書を教えていただけると助かります。
以上、よろしくお願い申し上げます。

yohhoy👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

nasmは使ったことないですが。

NASM - The Netwide Assembler
Index

colon

3.1 Layout of a NASM Source Line

The colon after a label is also optional.

と書いてあるので、付けても付けなくても同じだと思います。(たぶん)
コロンの有無で意味が変わるアセンブラってあったかなぁ?
(付けてるとエラーになるのはあったけど)

times

これかな?(繰り返しマクロのようですが)

3.2.5 TIMES: Repeating Instructions or Data

投稿2018/08/27 00:30

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rubato6809

2018/08/27 03:30

> コロンの有無で意味が変わるアセンブラって 私が使ってたアセンブラは、コロンがついていればグローバルシンボルになり、ついてなければローカルシンボルでした。わざわざグローバルと宣言する必要なくて良かったんですが、マイナーな処理系だったのでね。。。
GuielNo4

2018/08/27 03:52

アドバイスありがとうございます。 「ニーモニック」「疑似命令」ともに「intel記法」で決められていると思い込んでました…。 NASMのドキュメントを読みます。
fuzzball

2018/08/27 03:52 編集

>>rubato6809さん 8bit時代なんかは、そういう文字数を減らすための文法は多いですね。その後もその仕様を引き継いで(引きずって?)いたりとか。
rubato6809

2018/08/27 04:26

fuzzballさん 確かに8bitで始まった処理系です。32bitでも同じ仕様でしたw
guest

0

直接の回答ではありません。

まず、使用しているコンパイラ/アセンブラの仕様書が無いか、確認すべきかと思います。intel記法と言っても厳密な統一ルールは無いと理解しています。
また、intelと言っても CPUの種類は多いですし、他メーカーがあったりします。

ところで、ネット検索してみたでしようか? 単純に"インテル アセンブラ"としただけで、結構な数のサイトが引っ掛かりました。 IA-64 アセンブラ・ユーザガイド という文書もあるようです。

まずは、この辺から、調べる事をお勧めします。

[追記 8/27]

tmp:
tmp00 dw 0

のコロンの有無に違いはありません。 (昔、使ったアセンブラでは)
今まで、使った事のあるアセンブラでは、アセンブルと同時に、リスト出力がありました。それを見るとある程度は、疑似命令がどう解釈されているか理解できました。今、お使いのアセンブラにリスト出力は無いでしょうか? もし、あれば、それを見るのも一手かと思います。

または、fazzballさん指摘のNASMドキュメントでしょうか。

times ですが、GAS と NASM を比較する の下の方に、説明がありました。こちらは、GAS と NASMの比較が主なので、全てがあるわけではありませんが、ここの解説によると、times は、

times n [命令]

で、[命令] を n回繰り返すようです。

投稿2018/08/26 08:14

編集2018/08/27 12:37
pepperleaf

総合スコア6383

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

GuielNo4

2018/08/26 13:17

不足情報を追加してみました。 アドバイスありがとうございました。
pepperleaf

2018/08/26 23:10

昔、使った記憶では、コロンが付くとラベル(アドレス)だったかと。無い場合は、C とかで言う、const 扱いだったか? ちょっと自信が無い。 あとは、アセンブル結果と比較するの一手ですね。
GuielNo4

2018/08/27 03:53

「ニーモニック」「疑似命令」ともに「intel記法」で決められていると思い込んでました…。 NASMのアセンブルオプションで解析に使えそうな機能を探して、 結果の分析を行いたいと思います。 アドバイスありがとうございました。
pepperleaf

2018/08/27 11:28

セミコロン無しですが、 fuzzball指摘のように、有りと同様でした。const同様なのは、EUQ (or EQ) ですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問