• [解決済み] レジスタを自分自身とXORする目的は何ですか?重複

    質問 この質問はすでにここに回答があります : x86 アセンブリでレジスタをゼロに設定する最良の方法は何ですか: xor、mov、または and ですか? (回答1件)

    2022-06-02 06:20:15
  • [解決済み] 32ビットレジスタに対するx86-64命令は、なぜフル64ビットレジスタの上部をゼロにするのですか?

    質問 で インテルマニュアルx86-64ツアー を読みました。 <ブロッククオート おそらく最も驚くべき事実は、次のような命令があることです。 MOV EAX, EBX の上位32ビットを自動的にゼロにします。 RAX レジスタを使用します。 同ソースから引用したインテルのドキュメント(3.4.1.1 Manual Basic Architectureにおける64

    2022-04-28 14:59:48
  • [解決済み] gcc を使ってインテル構文のアセンブリコードを生成する方法は?

    質問 は gcc -S オプションは AT&T 構文でアセンブリコードを生成しますが、Intel 構文でファイルを生成する方法はありますか? または、この2つの間で変換する方法はありますか? 解決方法を教えてください。 使用方法 -masm=intel gcc -S -masm=intel -Og -fverbose-asm test.c GCC、clang3.

    2022-04-24 19:51:02
  • [解決済み】GDBで現在のアセンブリ命令を表示する

    質問 GDBでアセンブリレベルのデバッギングをしています。GDBが現在のソース行を表示するのと同じように、現在のアセンブリ命令を表示させる方法はありますか?すべてのコマンドの後のデフォルトの出力は、次のようになります。 0x0001433f 990 Foo::bar(p); これにより、現在の命令のアドレスが得られますが、そのためには disassembl

    2022-04-10 02:51:45
  • [解決済み】オペレーティングシステムなしでプログラムを実行するには?

    質問 オペレーティングシステムが起動していない状態で、プログラムを単独で実行するにはどうすればよいのでしょうか? 例えば、フラッシュドライブからコンピュータを起動すると、CPUにあるプログラムが実行されるような、コンピュータが起動時にロードして実行できるアセンブリプログラムを作ることは可能ですか? どのように解決するのですか? <ブロッククオート オペレーティングシステムが起動して

    2022-04-03 14:21:57
  • [解決済み】マルチコアアセンブラとはどのようなものですか?

    質問 昔々、x86アセンブラを書く場合、例えば「EDXレジスタに値5をロードする」「EDXレジスタをインクリメントする」等の命令を書いていました。 最近のCPUは4コア(あるいはそれ以上)ありますが、マシンコードレベルでは4つのCPUがあるように見えるのでしょうか(つまり、4つの異なるquot;EDX"レジスタがあるだけでしょうか)。 その場合、「EDXレジスタをインクリメントする」とい

    2022-04-02 14:36:42
  • [解決済み】アセンブリコード vs マシンコード vs オブジェクトコード?

    質問 オブジェクトコード、マシンコード、アセンブリコードの違いは何ですか? その違いを視覚的に例示してください。 どのように解決するのですか? マシンコード は、CPUが直接実行できるバイナリ(1と0)コードです。もし、テキストエディタでマシンコードファイルを開くと、印刷不可能な文字を含むゴミが表示されるでしょう(いいえ。 それら 印刷不可能な文字) ). オブ

    2022-04-01 16:05:40
  • [解決済み] アセンブリでの再帰的フィボナッチ

    質問 アセンブリで再帰的なフィボナッチ・プログラムを実装しようとしています。しかし、プログラムが処理されない例外でクラッシュしてしまい、問題を特定することができないようです。スタックの不適切な使用が原因であることは間違いないのですが、どこが原因なのかがわかりません。 .386 .model Flat public Fibonacci include iosmacros.inc ;inclu

    2022-03-15 10:57:13
  • [解決済み] lb命令は具体的に何をするのですか?

    質問 もうすぐ試験ですが、練習問題のひとつに と仮定します。 $t0 は値を含んでいます。 0x12121212 と $t1 には アドレス 0x1000000 . アドレスから始まるメモリデータがあるとします。 0x1000000 である。 88 77 66 55 . の値はどうなるのでしょうか? $t0 を実行した後、次のコードを実行します。 lb

    2022-03-15 06:49:38
  • [解決済み] ESIとEDIレジスタの目的は?

    質問 アセンブラにおけるEDI &amp; ESIレジスタの実際の目的と用途は何ですか? 一応、文字列操作に使われることは知っているのですが。 また、どなたか例を挙げてください。 どのように解決するのですか? いくつかの操作を行うことができます。 のみ DI/SI(または、1985年にASMを学んでいない場合は、その拡張版)で行うことができます。そのうちのひとつは R

    2022-03-15 02:08:02
  • [解決済み] asm: masm, nasm, fasm?

    質問 ARMのアセンブラをやったことがあるので、Intelのアセンブラを勉強したいのですが、どうすればいいですか?F/M/N/ASMがいろいろと言われていますが、私が達成したいこととどう関係があるのかわかりません。 どなたか、インテル・アーキテクチャで低レベルのプログラミングを学ぶために必要なものを特定するのを手伝っていただけませんか?x86、IA64、AMD64/x86-64など、さま

    2022-03-14 23:06:05
  • [解決済み] アタックラボフェーズ5におけるセグメンテーションの不具合

    質問 これは私のソフトウェアセキュリティのクラスでの攻撃ラボのフェーズ5です。アドレスのランダム化と実行不可能なスタックのため、リターン指向プログラミング(ROP)を使って、与えられたクッキーの値の文字列ポインタをtouch3という関数に引数として渡すことになっています。私は今のところそれしか理解できないので、質問をうまく説明できません。完全な命令はこのPDFの10ページにあります。 攻

    2022-03-14 22:44:40
  • [解決済み] LC3で不正なベクター番号でトラップが実行されました。

    質問 LC3で与えられた数値を異なる塩基に変換しなければならない課題をやっています。そのためには割り算をする必要があるのですが、これと同じことをする課題があったのですが、今回の割り算のアルゴリズムが違います。 この課題では、拡張除算を使うことが期待されています。基本的なアルゴリズムは 32ビットの数値が与えられたとき、最初の16ビットをあるメモリアドレスに格納し(上位分子と呼ぶ)、最

    2022-03-14 16:48:53
  • [解決済み] ワードとバイトの違いは何ですか?

    質問 ちょっと調べてみました。 バイトは8ビットで、ワードはメモリ上でアドレス指定できる最小単位です。ワードの正確な長さは様々です。私が理解できないのは、バイトを持つ意味は何なのか、ということです。なぜ8ビットと言わないのでしょうか? この質問を教授にしたら、最近のマシンはほとんどバイトアドレスが可能だと言っていたが、それだとワードはどうなるのだろう? 解答方法は? バイト

    2022-03-12 05:59:27
  • [解決済み] movl (%eax), %eax` の括弧はどういう意味ですか?

    質問 十分にググったのですが、ブラケットが何なのか分かりませんでした。 () を意味します。また、次のような構文も見受けられます。 movl 8(%ebp), %eax どなたか良いリファレンスを教えていただけませんか?Googleのトップ20の結果では、何も見つけることができませんでした。 解決方法は? %eax はレジスタEAXです。 (%eax) は、レジスタEAXに

    2022-03-10 16:01:45
  • [解決済み] JE/JNEとJZ/JNZの違いについて

    質問 x86のアセンブリコードでは、以下のようになります。 JE と JNE と全く同じです。 JZ と JNZ ? 解決方法は? JE と JZ は、全く同じものの別名に過ぎません。 条件付きジャンプ ZF ("zero" フラグ) が 1 になります。 (同様に JNE と JNZ は、条件付きジャンプの別名に過ぎません いつ ZF は0に等し

    2022-03-10 08:37:39
  • [解決済み] eax に対して `testl` eax?

    質問 あるアセンブリを理解しようとしています。 以下のようなアセンブリで、私が興味を持っているのは testl の行になります。 000319df 8b4508 movl 0x08(%ebp), %eax 000319e2 8b4004 movl 0x04(%eax), %eax 000319e5 85c0 tes

    2022-03-09 17:46:20
  • [解決済み] MIPSアセンブリの論理シフトを使用した2の累乗の乗算

    質問 MIPSアセンブリでシフトを使った乗算のコードを作るにはどうしたらいいか、どなたかご指南ください。私は数2^nを持っていることが、奇数の乗算子を使用して乗算するのに役立つのか理解できない。 私は現在このようなコードを持っています。 .text li $v0, 4 la $a0, ask_1 syscall li $v0,5 syscall move $s1,

    2022-03-09 12:27:32
  • [解決済み] mul/divでcdqを拡張して署名するのはいつ、なぜか?

    質問 今日のテストで、ダブルワードをクアッドワードに変換する問題だけがわからなかった。 そこで考えたのですが、乗算や除算で符号を伸ばすのはなぜか、いつなのか?また、cdqのような命令はいつ使うのでしょうか? 解き方は? 使用方法 cdq / idiv 符号付き32ビット/32ビット=&gt; 32ビット除算の場合。 xor edx,edx / div を無

    2022-03-09 04:02:13
  • [解決済み] MIPSプログラムにおける`lw`と`sw`の実際の働きを理解する。

    質問 を理解するのに少し苦労しています。 sw と lw は、MIPSのプログラムではどうでしょうか。このトピックに関する私の理解は、私たちは lw はメモリからレジスタにデータを転送し、その逆は sw . しかし、これは具体的にどのように実現されているのでしょうか? 例えば、次のようなコード行があるとしよう。 lw Reg.Dest, Offset(Reg.Source)

    2022-03-07 20:12:13