y86

    2

    2答えて

    以下は、単純なy86アセンブリプログラムのコードです。 2つの整数が与えられた場合、2つの整数のうち大きい方を出力するはずです。各行の右側には、同等のC言語の翻訳があります。 ヤスアセンブラを使用して # I ask about the need for a first line comment below. rdint %eax # scanf("%d", &a); rdint %ebx

    0

    1答えて

    私はCコードをとり、x86-64アセンブリでそれを回してからY86に変更するクラスプロジェクトを行っています。ここでは、リンクリストの要素の合計をraxに返すと仮定しています。しかし、私はy86コンパイラを使用しようとすると、表示されません。私が作ったy86はこのように見えた: .pos 0 irmovq Stack,%rsp irmovq Stack,%rbp jmp Main Mai

    0

    1答えて

    注:これはクラス用です。私はrspとrbpがどのように動作するのか理解しようとしているので、コードのどの部分が乱れているのか理解できます。申し訳ありませんが、私はこれに新しいです。助けてくれてありがとう。 だから、私は私が原因再帰に台無しにされているスタックのどこかに値を格納する際にミスを作ってるんだ疑いリンクリスト .pos 0 init: irmovq Stack, %rsp #

    1

    1答えて

    私はy86コードでループをアンロールしようとしていますが、テストプログラムを実行しようとすると2つの異なる値を取得しています。登録簿 xorq %rax,%rax # count = 0; andq %rdx,%rdx # len <= 0? jle Done # if so, goto Done: Loop: mrmovq (%rdi), %r10 # r

    1

    2答えて

    この単純で無意味なアセンブリ(Y86)コードを作成して、命令の呼び出し時にスタック内で起こっていることをすべて理解しているかどうかを確認しました。 私が言ったように、このコードは無意味です、それは単なるテスト/学習の目的です。しかし、すべてのメモリアドレスが正しく(有望な)計算され、ランダムではありません。 アセンブリコードは以下の通りです: | .pos 0 0x00 | irmovl St