• [解決済み] ARMアセンブリループ

    質問内容 for (int i = 0; i < 10000; i++) a[i] = b[i] + c[i] この高級言語のARMアセンブリはどのようなものでしょうか? 編集する また、AのベースアドレスはR8、BのベースアドレスはR7と仮定しています。 BのベースアドレスはR9、CのベースアドレスはR10になります。 で、A,B,Cはすべてint型配列です。 あり

    2022-02-15 18:31:02
  • [解決済み】単純なforループのためのMIPSアセンブリ

    質問内容 このCコードをMIPSアセンブリに翻訳する必要があります。 以下はC言語のコードです。 int tmp = 0; for (int j = 0; j < 15; ++j) tmp = tmp * 2 + 3 これは私のMIPSアセンブリコードです。正しく翻訳されていますか?もし何か間違いがあれば、ぜひ教えて欲しいです。 # tmp = $v0 # j

    2022-02-15 14:24:12
  • [解決済み] ARMはSDIVとUDIVを区別していますが、ADD、SUB、MULでは区別していないのはなぜですか?

    質問 タイトルにあるように、ARM命令セットでは、なぜ除算時のみ符号付きと符号なしを区別しているのでしょうか? SDIVとUDIVは使えますが、ADD、SUB、MULはそうではありません。 どのように解決するのですか? 同じ大きさの符号付き数と符号なし数の加算と減算は、(ARMが採用している)2の補数演算では全く同じビットパターンになるので、別の命令は必要ありません。例えば、バイ

    2022-02-15 12:27:47
  • [解決済み] アセンブリのNEG

    質問事項 neg 3BH 私が理解しているように、私は C5 しかし、私自身の計算では C4 (1を0に、0を1に切り替えています)。何が問題なのでしょうか? 解決方法は? ネグ は、ビット単位の負ではなく、2 の補数の負を計算します。そのため ではない という命令を出すか、手動で答えに1つ追加して、目的の結果を得ることができます。

    2022-02-15 11:13:07
  • [解決済み] x86アセンブリで160x100モードを実現する

    質問 IBM CGAでCRTCを使って行の高さを2ピクセルに変更することで、擬似的に160×100のグラフィックモードが実現できることは以前から知っていたのですが。数日前からこれを実現しようとしているのですが、行き詰まっています。 その インテル® オープンソース HD グラフィックスと インテル® Iris™ グラフィックス・プログラマーズ・リファレンス・マニュアル clai

    2022-02-15 10:29:18
  • [解決済み] linuxのsys_readシステムコールを作ると、レジスタeaxに何が入るのでしょうか?

    質問内容 アセンブラでシステムコールsys_read(int80hでeaxに値3)を行った場合、コール後のレジスタeaxには何が格納されるのでしょうか?読み込んだ文字列の文字数でしょうか? どのように解決するのですか? 確認 read(2) のドキュメントをご覧ください。 戻り値 成功時、読み込んだバイト数を返す(0はファイルの終端を示す)。 そして、ファイ

    2022-02-15 01:31:47
  • [解決済み] 8086アセンブリ言語での2つのレジスタのスワッピング(16ビット)

    質問事項 他の変数、レジスタ、スタック、その他の記憶場所を使わずに、2つのレジスタの値を交換する方法を知っている人はいますか? ありがとうございます AX, BXを入れ替えるとか。 どのように解決するのですか? 数学の演算を使えばいいんです。アイデアを提供します。参考になれば幸いです。 私はこのCコードに従いました。 int i=10; j=20 i=i+j; j=i-j;

    2022-02-14 22:28:35
  • [解決済み] ビットシフト演算子を使って10進数を2進数で表示するMIPS

    質問事項 このトピックに関するスレッドをここやネット上の他の場所で数多く読みました。 ビットシフトに関する素晴らしいトピック(必ずしもAssemblyに関連するものではありませんが、一般的なトピックは以下の通りです。 ビットシフト(bit-shift)演算子とは何ですか、またその仕組みは? OPのコードをここにコピー&ペーストするところまでやってみました。 入力された整数を2進数

    2022-02-14 16:56:23
  • [解決済み] アセンブリで命令セテは何をするのですか?

    質問内容 私のユニバーシティ・コースでは、基本的なアセンブリの知識が必要なのですが、私は何も持っていません。しかし、彼らはこのサンプルアセンブリコードを私たちに与えました。 080485fa <check_pin>: 80485fa: 55 push ebp 80485fb: 89 e5

    2022-02-14 15:01:20
  • [解決済み] cmovlオペコードの中で何と何が比較されるのですか?

    質問内容 アセンブリのオペコードcmovlでは、何が比較されるのですか? 例えば EAX: 00000002 EBX: 00000001 cmovl eax,ebx その結果はどうでしょうか?移動できるようにするには、どれを減らす必要がありますか? ありがとうございました。 解決方法は? cmovは比較を行わず、前の比較の結果を使用し、それが真であれば、m

    2022-02-14 03:29:56
  • [解決済み] MIPSのコードのこの部分で、oriはどのように使われているのですか?

    質問内容 ここで、"ori"の使い方を誰か説明してください。ビット単位のORであることは知っていますが、それがどのように機能するのか、なぜここでそれが必要なのかが分かりません。 #objective of the program is to add 5 and 7 .data #variable declaration follow this line .text #instructio

    2022-02-13 21:27:53
  • [解決済み] アセンブリで数字をASCIIに変換する

    質問 0x0030をオペランドとする2進数に対してOR演算を行うと、その数値のASCII文字が生成されるのはなぜか、誰か説明してください。 どのように解決するのですか? なぜなら、ASCII表を見ると、0から9までの数字は0x30から始まっているからです。つまり、文字1のASCII値が欲しいということですね。0x30 または 0x01 = 0x31 = 数字の1に対するASCII値で

    2022-02-13 12:08:03
  • [解決済み] アセンブリ - CMP後のJG/JNLE/JL/JNGE

    質問事項 を理解できません。 JG/JNLE/JL/JNGE CMPの後に来る命令です。 例えば If I have: CMP al,dl jg label1 いつ al=101; dl =200 . を求めるものについて jg ? にあるのでしょうか? al>dl または al-dl>0 ? 次のコードでも同じプロブレムです。 test al,dl

    2022-02-12 23:10:18
  • [解決済み] アセンブリで負の数を計算する方法

    質問内容 私はアセンブリの初心者ですが、負の数の表現方法について質問があります。 私は3つのDWORDS変数を持っている、例えば。 result DWORD 0 i DWORD 3 j DWORD 5 で、この式を計算したいのですが、result = i - j + 8 です。 しかし、i-jを実行すると、符号の関係で結果が非常に大きな数字になります。 どうすれば、最終的に結果がOK

    2022-02-12 22:46:34
  • [解決済み] x86 8086 アセンブリで 0-9 の範囲の乱数を生成する。

    質問 まず最初に、私は8086アセンブリの初心者で、知識をつかむのがかなり困難です。でも、がんばります。 私は0-9の範囲内で乱数を生成するコードを書こうとしています。いくつかの例と提案を調べた後、これは私が最終的に得たものです。私は、取得したクロック数に数学的関数を適用しませんでした、シンプルにするため、また、私はそれが不要だと思いました。しかし、なぜか6,7は1,3,9よりも少ない回

    2022-02-12 22:44:15
  • [解決済み] ARMアセンブリのstrの説明

    質問 不思議なことに、以下のような説明が見つかりません。 str はアセンブリ言語で動作します。 以下のように理解しています... str r1,[r2] ...レジスタ1にあるものを保存します。 r1 は、レジスタ2のアドレスに格納されます。 r2 . しかし、どのようにして str は、角括弧がもっと複雑な場合に機能します。例えば str r1,[r0,r3,lsl

    2022-02-12 10:33:41
  • [解決済み] .quadディレクティブはアセンブリでどのように機能するのですか?

    質問内容 の仕組みがよくわからなくて困っています。 .quad 関数はアセンブリで動作します。 ネットで読んだところでは、現在のセクションへの各式に対して64ビットの2進数の補数値を生成するようです。私は、2重補数とは何か、そして、そのセクションが .quad が呼び出されます。 は、いつ、どこで .quad は、通常アセンブリで呼び出されますか? また、なぜ .q

    2022-02-11 15:03:29
  • [解決済み】なぜMIPS用のsubiオペコードは存在しないのですか?

    質問 を始めたばかりです。 アセンブリ言語 . について読んでいました。 MIPS を搭載していることを知りました。 {コード オペコードがない {コード {コード opcodeを使用します。なぜ私たちは addi オペコードは? 解答方法は? 命令セットを作成する場合、作成できる命令の総数など、いくつかの制約に縛られることになる。MIPSの制作者は、その必要性がないことに気づきました。

    2022-02-10 13:29:42
  • [解決済み] アセンブリ命令のトラップは何をするのですか?

    質問内容 " RTFM " <ブロッククオート プログラムは、通常、ソフトウェア・トラップを発行します。 オペレーティングシステムがサービスを提供します。一般的な例外ハンドラは オペレーティングシステムは、トラップの理由を判断し、対応する。 を適切に設定します。 アセンブリ命令のtrapは、BASICのTRAPと同じような命令なのでしょうか? 答えはYE

    2022-02-10 05:22:24
  • [解決済み] なぜSet on Less ThanはALU演算なのか?

    質問 なぜ slt ALUの演算を考慮したのですか? 単に引き算をしてから*を得るだけだと思っていました。 Z *ALUからの出力はゼロ? ALU制御線|機能 -------------------+------------------- 0000|アンド 0001|OR 0010|追加 0110|減算 011

    2022-02-10 02:47:11