• [解決済み] Lc3分割のしくみ

    質問 Iveは引き算による除算がどのように機能するかを理解しようとしたが、それを明確にするオンラインリソースがない。また、サブルーチンの構文がどのように見えるかの良い例も必要です。 どのように解決するのですか? LC3では、2つの方法で割り算に取り組むことができます。もし引き算で割り算をする例を探しているなら、この投稿を見てください。 2進数で右ビットシフトするには? で

    2022-02-05 17:24:22
  • [解決済み] なぜ、addiではなくaddiuを使うのか?

    質問 MIPSアセンブリにおいて addiu オーバー addi ? はありません。 addiu 符号なし(計算が破綻する?) どのように解決するのですか? <ブロッククオート で、計算が台無しになる いいえ、MIPSは 2の補数 したがって、同じ加算・減算命令で符号あり・なし両方の演算を行うことができます。結果に差はない。 これは、ビット単位の命

    2022-02-05 15:31:01
  • [解決済み] ミップスアセンブリの文字列の長さ

    質問事項 以下のコードを実行するたびに #counts length of a string .data .data string: .asciiz "Hello" printedMessage: .asciiz "The length of the string: " .text main: la $a0, string # Load addr

    2022-02-05 10:51:12
  • [解決済み】andiとoriはこのプログラムで何をするのですか?

    質問内容 .global main # makes label "main" globally known .text # Instructions follow .align 2 # Align instructions to 4-byte words

    2022-02-04 23:16:24
  • [解決済み] NASMでscanfを使うには?

    質問内容 をどのように使うか考えています。 scanf を使用してユーザーの入力を取得します。私は printf というように、画面に書きたいデータをスタックにプッシュするだけです。 global _main extern _printf extern _scanf section .data msg db "Hi", 0 section .text _main: push e

    2022-02-04 18:59:59
  • [解決済み] MIPS: スタックポインタ($sp)とスタックの関連した使用法

    質問 現在、コンピュータ組織の中間試験に向けて勉強していますが、スタックポインタとスタックを完全に理解しようとしています。私はこの概念にまつわる次のような事実を知っています。 先入れ先出しの原則に従う そして、スタックに何かを追加するには、2段階のプロセスが必要です。 addi $sp, $sp, -4 sw $s0, 0($sp) 私が思うに、私が完全に理解するのを

    2022-02-04 16:39:03
  • [解決済み] アセンブリ言語 - Moduloはどのように行うのですか?

    質問 x86アセンブリでモジュロ演算子や命令のようなものはありますか? どのように解決するのですか? モジュラス/ディバイダーが既知の定数であり、パフォーマンスを重視する場合は、以下を参照してください。 これ と これ . 実行時までわからないループ不変の値に対しては、乗法的な逆数も可能です。 https://libdivide.com/ (ただし、JITコー

    2022-02-02 13:32:44
  • [解決済み] 着信側セーブレジスタ、発信側セーブレジスタとは何ですか?

    質問内容 呼び出し側と呼び出し側のセーブレジスタの違いと、いつ何を使えばいいのかがわからず困っています。 私はMSP430を使用しています。 : の手順で行います。 mov.w #0,R7 mov.w #0,R6 add.w R6,R7 inc.w R6 cmp.w R12,R6 jl l$loop mov.w R7,R12 ret 上記のコードはcalleeであ

    2022-02-02 01:19:18
  • [解決済み] MIPSの大、小、大

    質問 2つのレジスタがある場合 $s0 , $s1 のみを使用して、以下の疑似コードを MIPS アセンブリ言語に変換するにはどうすればよいでしょうか? slt (未満に設定)、および beq と bne (等しい場合に分岐、等しくない場合に分岐)命令です。 if ($s0 > $s1) { goto label1 } if ($s0 >= $s1)

    2022-02-01 17:19:41
  • [解決済み] ARMのアセンブリ言語でbx lrは何をするのですか?

    質問内容 bx lr が何をしているのか、bl (label) とどう違うのか、いまいち理解できません。bl (label)がその関数のリターンアドレスをリンクレジスタに格納することは知っていますが、bx lrが何をするのかがわかりません。 どのように解決するのですか? bx は 分岐・交換命令セット つまり、分岐先のアドレスのlsb(最下位ビット)により、プロセッサは

    2022-01-31 20:18:24
  • [解決済み] error A2022: 命令オペランドは同じサイズでなければなりません。

    質問 このコードを実行すると、次のようなエラーが発生します。 1>------ Build started: Project: Project, Configuration: Debug Win32 ------ 1> Assembling [Inputs]... 1>assign2.asm(32): error A2022: instruction operands

    2022-01-29 20:19:11
  • [解決済み] MIPs Assemblyでsllなどを使ってビットをずらすのはなぜですか?

    質問内容 を読んで、sllというコマンドが何をやっているのか、なんとなく理解できました。 これ というのは、すべてのビットを1ずつ左にシフトしているだけだからです。 授業で出た課題で、その例があるのですが・・・。 s6と$s7は配列のベースアドレスで、$s1/$s2は単なる変数です。 sll $t0, $s0, 2 add $t0, $s6, $t0 sll $t1, $s1,

    2022-01-29 10:55:39
  • [解決済み] popまたはadd esp、4 ? その差は何ですか?

    質問内容 私は見た これ の質問で、答えが見つからなかったのですが...。 では、なぜ add esp, 4 または add esp, 8 を使用するのではなく pop を1回、2回と繰り返すのですか?違い(性能、安全性など)は全くないのか、それとも個人の選択の問題なのか? 解決方法は? pop が行います。 add esp, 4 も、スタックの一番上にあ

    2022-01-29 04:34:07
  • [解決済み] callq命令とは何ですか?

    質問内容 あるツールで生成されたx86_64アーキテクチャ用のgnuアセンブラコードがあるのですが、そこに以下のような命令があります。 movq %rsp, %rbp leaq str(%rip), %rdi callq puts movl $0, %eax callq"命令に関する実際のドキュメントが見当たりません。 を見てきました。 http://support.amd

    2022-01-28 16:13:37
  • [解決済み】アセンブリJLEのjmp命令例

    質問内容 をどのように使用するのですか? ジャンプファミリー の命令を教えてください。 これが彼らの持ち味です。 JLラベル より小さい場合、またはより大きいか等しくない場合は、"It"ジャンプします。 私の質問は とは それ という文章がありますが、これは何でしょうか? で変数があるとします。 ebx というラベルにジャンプしたい。 there:

    2022-01-27 07:37:08
  • [解決済み】MIPSで整数の絶対値?

    質問内容 MIPSでレジスタの値を絶対値化する簡単な方法はありますか? どのように解決するのですか? ここでは、かなり簡単な方法を紹介します。 #assume you want the absolute value of r1 ori $2, $zero, $1 #copy r1 into r2 slt $3, $1, $zero

    2022-01-26 01:57:18
  • [解決済み】バイナリーボム - フェーズ4

    質問 次のバイナリ爆弾のアセンブリコードをトレースするのに非常に苦労しています(爆弾を解除しなければならない学校の課題で、この爆弾には6つのフェーズがあり、次のフェーズに進むにはすべて1つの正しい入力が必要です)。私は現在フェーズ4におり、func4と呼ばれる再帰的な関数を持っています。入力は "%d %d" で、これは2つの整数であることを確認した。しかし、すべてのステップですべてのレジス

    2022-01-25 13:55:59
  • [解決済み] cmplとcmpの違いについて

    質問事項 パズルを解くために、アセンブリを理解しようとしています。しかし、次のような指示がありました。 0x0000000000401136 <+44>: cmpl $0x7,0x14(%rsp) 0x000000000040113b <+49>: ja 0x401230 <phase_3+294> 何をやっているかというと

    2022-01-25 03:47:55
  • [解決済み] テスト

    質問 アセンブリ関数を読み込むためにgdbデバッガを使用しています。 アセンブリでは、次のような命令になっています。 mov 0xc(%rsp),%eax jmpq *0x402390(,%rax,8) メモリロケーションにて *0x402390 という値があります。 0x8e . レジスタ rax には、この特定の関数の 2 番目の整数入力があります(変数 y を使

    2022-01-22 14:37:01
  • [解決済み】テスト %eax %eax のポイント【重複あり

    質問内容 この質問はすでにここに回答があります : 閉じる <スパン 9年前 . <ブロッククオート 重複の可能性があります。 x86アセンブリ - 'testl' eaxとeaxの比較? 私はアセンブリ言語プログラミングの超初心者で、

    2022-01-19 10:45:11