cpu-registers

    6

    1答えて

    アセンブリ関数の呼び出し関数の最初のアクションとして、なぜpush ebpを使用しますか? mov edi, [ebp+8]を使用して渡された変数を取得することがわかっていますが、espは既に呼び出し元関数の戻り先アドレスを指しています。渡された変数にmov edi, [esp+4]で簡単にアクセスすることができます。または、Calleeレジスタを押した場合は、mov edi, [esp+16]を

    1

    1答えて

    保存されたレジスタのデータに正確に何が起こるのかが重要な理由は何ですか?削除されるか、新しい値で上書きされますか?これらの新しい価値はどこからもたらされますか?私が何かについて不明な点がある場合は、以下にコメントしてください。

    6

    1答えて

    命令ポインタとプログラムカウンタの間に基本的な違いはありますか?私は彼らが両方とも同じことを言っていると信じています、eip /リップ登録、私が今まで行った研究では、それは私の心の中ではあまり明確ではありません。

    5

    1答えて

    x64のインテルによれば、以下のレジスタは汎用レジスタ(RAX、RBX、RCX、RDX、RBP、RSI、RDI、RSP、R8~R15)https://software.intel.com/en-us/articles/introduction-to-x64-assemblyと呼ばれています。 以下の記事では、RBPとRSPが専用レジスタ(RBPが現在のスタックフレームの基点を指し、RSPが現在のス

    0

    1答えて

    私は16bitレジスタを持っています。ビット0の値に ビット1で0 です... 2値は、ビット3の値で3 ビット4の端部に1 だから値SSで1 あります (0 x 1)+(3 x 2)+(1 x 8)+(1 x 16)= 30 これで、値を取得するために逆にしたいと思いますiビット: (30 &1)/ 1 = 0 (30 & 2)/ 2 = 1(これは間違っています私が間違ってやっている3) (3

    5

    2答えて

    Wikipediaでは、メモリデータレジスタ(https://en.wikipedia.org/wiki/Memory_buffer_register)とメモリバッファレジスタ( https://en.wikipedia.org/wiki/Memory_data_register)の定義が似ています。 しかし、プロセッサレジスタのページは、何を区別するのかを言わずに2つを区別します(https:/

    2

    1答えて

    私は4つの方法のコマンドにこの表現を変換するためにいくつかの助けを取得したいと思い:ここ z=3*(x+2)-2*y は私の試みとメソッドです:スタックによって :アキュムレータによって push 2 push -1 mult push y mult push x push 2 add push 3 mult add pop z : load y mult -2

    0

    1答えて

    私はアプリをデバッグしていて、rcxに格納されている値で指し示されているメモリ領域を確認する必要があります。通常、コードのために、これは変数(ポインタ)を選択し、ポインタから始まる観戦する要素の数とともに、迅速な時計を追加することによって行われます: 私はへのポインタを取得したいです #include <stdio.h> int main() { 000000013F1217C0 push

    -2

    1答えて

    オフセットが 'load word's'プログラムカウンタから1行(4バイト)離れた命令をフェッチしてレジスタ$ s0,4($ t0)にフェッチして格納するかどうかは不明です。これはどのようにメモリ内で機能しますか?可能であれば、例を提供してください。

    -1

    1答えて

    私はC言語のコードをMIPSアセンブリに変換することを含むクラスのプロジェクトを進めています。私はこのコード変換する問題を抱えています: r[extract(ir,15,11)] = aluout; は基本的には、rは[]それはextract関数からの結果に基づいて、アクセスに登録するかを決定、あなたが見ることができるようにC.内のレジスタを表す配列です。 MIPSにこれのようなものはあります