stack-pointer

    0

    1答えて

    スタックポインタを元の位置に戻してもスタックに保存された値がメモリからレジスタファイルに戻されない場合はどうなりますか?すなわち、スタックポインタが戻されたときに、値はスタックメモリ内に依然として存在する。

    4

    1答えて

    C関数を使用している間、アセンブリで小さなプログラムを作成するように求められました。そうしている間、私は何か特定のものについて疑問を抱いていました。 私はアセンブリを扱うとき、私はC関数を呼び出したいところはどこでも、私はスタックにそれの引数をプッシュしなければならないことを知って、そして関数が返された後、私はそれらの引数をポップ(またはespに4 × Xを追加する必要がありますここで、xはプッシ

    1

    2答えて

    memset()と同じように、メモリのブロックを指定した値に設定する関数をアセンブリで作成しようとしていますが、スタックから3番目の引数を取得するときに(fastcall呼び出し規約を使用します)レジスタECXは、何らかの歪んだ値を取得します。 インラインアセンブリを使用してVisual Studioにコードを挿入すると、関数が呼び出されたときにESPが大幅に変更されていることがわかります。 最初

    2

    1答えて

    なぜこのコードは "test"を出力しませんか? #include <stdio.h> #include <stdlib.h> void foo (void) { printf("test\n"); } __declspec(naked) void bar (void) { asm { push 0x000FFFFF call malloc

    1

    1答えて

    リンク先:How to get a call stack backtrace?(GCC,MIPS,no frame pointer) アセンブリコードとユーザースタックを使用して関数を反復することにより、コールスタック(詳細は上記のリンクを参照)を再現しています。 私は各関数の前の$属を見つける必要があり、ほとんどの機能は、次の命令で始まる:私は簡単にオペコードから、以前の$ SPを結論付けること

    1

    2答えて

    私は最近、CコードとMIPSコードでバイナリ1の数を数えるためのコードを作成しました。私はCで余りの値を使い、count_one変数をインクリメントします。 MIPSでは、同じプログラムを実行しましたが、1のすべてを数えるまで、そのバイトのバイトをシフトしました。 Howver、私はポインタを使う方法を学びたいと思っていますが、私はそのコンセプトを理解しているようには見えません。次のように私のMI

    0

    1答えて

    宿題については、ファイルを読み込んで文字列をソートすることになっています。このため、私は選択ソートを使用していますし、それは動作します。さて、selSort関数を呼び出すと直ちにクラッシュします。私は誰も私に手を差し伸べることができるこの問題を解決するためにアイデアが不足している? // 2_8.cpp : Defines the entry point for the console appli

    2

    1答えて

    OpenCVライブラリ、Boostライブラリ、およびこのLINKからダウンロードしたコードのコードを使用してアプリケーションを作成しています。私はThunk32と同じソリューションの下にプロジェクトを作成していると私は、次のファイルがあります。 MainProject.cpp #include "stdafx.h" int main(int argc, char** argv) {