(機械語データ) (アセンブリ言語)
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ランキング
-
楽しくて最高のプログラミング...
-
ラズパイpico PIOモード
-
小学1年生の子です。塾に行かせ...
-
プログラミング
-
pythonで複数画像からgifを作る...
-
Pythonでgif画像が上手く作れない
-
プログラミング ソースコード
-
正規表現で複数マッチ条件で悩...
-
vba クリップボードクリアにつ...
-
RTKPOSTのファイル生成について
-
windowsでテキストファイルの各...
-
Pythonって何を意識した言語な...
-
pythonにてseleniumを使うも、...
-
Gitについて質問。 クローンし...
-
スカラーのベクトル微分
-
matplotlibで任意の角度の円弧...
-
プログラミングで例えばゲーム...
-
Webサイト内に埋め込んだmp4動...
-
テキストファイルのファイル名...
-
Selenium4でボタンをクリックで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
chatGPTで次々と質問をしていく...
-
昔のパソコン少年の武勇伝「店...
-
スカラーのベクトル微分
-
ハッシュテーブル(連想配列)が...
-
最新のプログラム言語を学ぶに...
-
pythonにてseleniumを使うも、...
-
Windowsのアプリ開発ってなんの...
-
vba クリップボードクリアにつ...
-
Google ColaboでGUI作成
-
sublimit textっていうエディタ...
-
フリーランスのエンジニアって...
-
ExcelVBAでFormulaR1C1を列範囲...
-
matplotlibで任意の角度の円弧...
-
そのまま使っただけなのに・・...
-
家庭のパソコンで Python の 環...
-
初心者powershellのPS1ファイル...
-
Webプログラムってネイティブア...
-
httpリクエストの送り元の特定
-
プログラミングで例えばゲーム...
-
rpa化する言語としてら何があり...
おすすめ情報
ba 04 00 00 00 mov $0x4,%edx bb 01 00 00 00 mov $0x1,%ebx で、movと00 00 00とbaとbbがどうなるのかがわかりません。どこに、baとbbの命令が書かれているのでしょうか?教えていただけないでしょうか?すみません。