![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
(機械語データ) (アセンブリ言語)
b8 57 61 6b 61 mov $0x616b6157,%eax
53 push %ebx
50 push %eax
ba 04 00 00 00 mov $0x4,%edx bb 01 00 00 00 mov $0x1,%ebx b8 04 00 00 00 mov $0x4,%eax 89 e1 mov %esp,%ecx
cd 80 int $0x80
58 pop %eax
31 c0 xor %eax,%eax
5b pop %ebx
c3 ret
これのintと movとxor の機械語が分かりません。後、retの機械語が、farなのかnearなのかも分かりません。教えていただけないでしょうか?すみません。
A 回答 (8件)
- 最新から表示
- 回答順に表示
No.8
- 回答日時:
>ここで手詰まりなのですが、以下のURLです。
教えていただけないでしょうか?何が知りたいのかよくわかりませんが、
補足コメントに書かれていることであれば、
mov $0x4,%edxは人間が分かりやすいように(英語っぽい)記号を用いた表現。
でも、コンピュータは電化製品なので、2進数(電気が流れているかいないか)しか分かりません。したがって、メモリ中には、0と1の情報しかありません。
しかし2進数だと桁数が多くなるので、2進数4桁を1桁にできる16進数を用います。
mov $0x4,%edx に対応する16進数が ba 04 00 00 00 となります。
これが、メモリ中の内容です。コンピュータはこれを読み取り実行します。
ここからは、私の推測です(私はインテル系の機械語には詳しくないのであしからず)
質問者様は ba と 04 と 000000 に分けてみておられますが、
04000000 が 一塊だと思います。これが $0x4に対応しているのでは
おそらく、$0x4 で4バイト の 4 を示すのでは
ちなみにインテル系はリトルエンディアンなので、4バイトの4はメモリ中では逆に並び 04000000 (16進表記)となります。
で、ba は %edxにmov を示しているのでは。
次のmov $0x1,%ebxが bb なのは bbが %ebxにmov をしめしているのだと思いますが。
mov $0x4,%edx は %edxに4バイトの4をいれろ という命令で、
メモリ中には ba 04 00 00 00 と展開される。
コンピュータは ba 04 00 00 00 を解析して %edxに4バイトの4を入れる
こんな感じでは
No.7
- 回答日時:
>その機械語はどうなるのでしょうか?
機械語は通常オペレータ部分(何をするか)とオペランド部分(どこに対してするか)に分かれます。
例えば、電話をするなら、電話をすること自体がオペレータ、電話番号がオペランドです。
その機械語がどうなるのかですが、
オペレータは、機械(CPU)によって異なるので、CPUがわからなければわかりません。
オペランドは、機械によって形式が異なるし、機械がわかっても、操作対象によってことなるのでわかりません。
ただし、質問者様の質問欄に
31 c0 xor %eax,%eax
とあるので、
xor %eax,%eax の 機械語は 16進数で 31c0 でしょうね。
これは、インテル系CPUだと思います。
通常、機械語は人間には分らないので、人間は機械語に対応したコード(この場合は 「xor」 とか 「eax」 とか)を書くことになります。
何の目的で機械語が知りたいのか分かりませんが、
インテル系アセンブラの入門書をお読みになるのが一番かと思います。
ここで手詰まりなのですが、以下のURLです。教えていただけないでしょうか?すみません。
https://6900.teacup.com/cgu135/bbs/1096
No.5
- 回答日時:
xor 排他的論理和(ビットが違っていたら1、同じなら0)
同じもの同士のxor で0クリアできる。
xorに代表される論理演算はコンピュータが最も得意とする演算なので、
0をセットするより速いと思われる
No.3
- 回答日時:
>(機械語データ) (アセンブリ言語)
左に書いてあるのがご希望の機械語ですよ。
下記ドキュメントを読めば知りたい命令の機械語が分かります。
https://www.intel.com/content/dam/www/public/us/ …
No.2
- 回答日時:
1回だけの約束で教える...再度聞いても無視します
>これのintと movとxor の機械語が分かりません。後、retの機械語が、farなのかnearなのかも分かりません。
int:イニシャル...初期化する
mov:Move...移動する
xor:わからんが拡張のORを意味かも
=======================
今判ったが、パソコンの検索欄に int 命令 と入れたら正しいかどうかは別にその命令らしき内容と詳細が出てくる
他の命令もこの例に続けて検索したら君の引き出しが増えるだろう
では、またね~
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# Cのオブジェクトファイルの逆アセンブル 5 2023/05/13 01:51
- その他(プログラミング・Web制作) x86_32のGASの擬似命令 3 2023/06/07 19:55
- その他(プログラミング・Web制作) プログラムについて。 2 2022/04/07 18:48
- C言語・C++・C# アセンブラ指令 3 2023/06/17 14:47
- IT・エンジニアリング 三菱シーケンサについて 1 2023/04/07 12:41
- その他(プログラミング・Web制作) プログラムについて。 4 2022/03/30 09:59
- 英語 英語パラフレーズの機械? 昔ネイティブの友達が、英語の文章の単語を類義語に言い換えてくれる機械を使っ 1 2022/12/10 19:24
- その他(動画サービス) YMM4 で MOV ファイルが読み込まれているがプレビューされない 2 2022/07/25 18:36
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- ノートパソコン 拡張子の変換 6 2023/05/07 20:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ホームページのプログラムの見...
-
Pythonで仮想通貨の自動売買が...
-
このプログラミング言語のfor分...
-
vba クリップボードクリアにつ...
-
Google ColaboでGUI作成
-
ウェブサイトのアクセスログに...
-
HTMLソースが表示のページのも...
-
python 気象データの取得
-
テキストファイルの1行目のみを...
-
プログラムの起動、利用につい...
-
AIの登場でプログラマーたちが...
-
Windowsのアプリ開発ってなんの...
-
ExcelVBAでFormulaR1C1を列範囲...
-
htaccessで特定のディレクトリ...
-
powershellスクリプトで出力し...
-
Pythonで、データファイルと列...
-
VBSでテキストファイルの2行目...
-
VBA 電話番号の正規表現について
-
Webプログラムってネイティブア...
-
そのまま使っただけなのに・・...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
テキストファイルの1行目のみを...
-
Google ColaboでGUI作成
-
Python... 環境設定 初心者です...
-
AIの登場でプログラマーたちが...
-
入力された文字列が、LD22000を...
-
ITパスポートの勉強をしていま...
-
プログラミングサイトについて。
-
バッチファイルが保存されてい...
-
VBSでテキストファイルの2行目...
-
40代後半でゼロからのプログラ...
-
{ CONTROL Forms.Label.1}が...
-
Version Control on Unity
-
過剰なオブジェクト指向脳から...
-
VBAでパワーシェルを実行したい...
-
ImageMagickでgif画像の一部が...
-
正規表現 URL抽出「 [\\/\\b]{0...
-
VBA 電話番号の正規表現について
-
そのまま使っただけなのに・・...
-
プログラム言語について。
おすすめ情報
ba 04 00 00 00 mov $0x4,%edx bb 01 00 00 00 mov $0x1,%ebx で、movと00 00 00とbaとbbがどうなるのかがわかりません。どこに、baとbbの命令が書かれているのでしょうか?教えていただけないでしょうか?すみません。