assembly

    0

    1答えて

    、ラベルの付いた例は次のようになります。 cmp r12, r13 je dest ; skip the jmp jmp whatever dest: nop しかし、私の制限は、私がラベルを使用することができないということですので、私は、私はジャンプを作成する必要がありますと仮定RIPレジスタを基準にして例えば(擬似): cmp r12, r13 je rip+0x05 ; thi

    -1

    1答えて

    ORG 0100H INIT: MOV AL,99H OUT 06,AL MOV AL,0 OUT 02,AL MOV TEMP,01DH LOOP: CALL ADC CALL HEX2ASC CLR C SUB AL,TEMP JC TEMPLO CLR AL

    0

    1答えて

    私はasm x86でcasetableを理解する上で問題があります。私の教授は、既にこの例を使用したスライドでそれを説明しています .data CaseTable BYTE 'A' ; lookup value DWORD Process_A ; address of procedure EntrySize = ($ - CaseTable) BYTE 'B' DWORD Process

    -1

    1答えて

    現在、私はいくつかの問題を抱えています。私のコードをデバッグすると、私のC++はアセンブリ関数呼び出しに到達するまで正常に実行され、L1ではなくアセンブリコードでL2にジャンプします。私はなぜこれを行うのか分からない。その上に、私は画面に印刷される配列を取得しようとしているが、今のところ、私はちょうど巨大な番号を取得します。私はIrvineのライブラリを含め、 "WriteDec"を使って要素を印

    1

    1答えて

    私のプログラマーは、バイナリをベース64にエンコードすることになっています。 すべてはEOFまでうまく動作します。私は出力文字列の最後に '='を追加するのに苦労します。 これは、最後のバイトが読み取られている場合にのみ発生します。それは空の空間を埋めるはずです。ここでは、1つまたは2つの '='を追加する必要があるたびに、私のコードを検出します。私の中のSO Read: mov ea

    0

    1答えて

    スタック内の2つの値を比較して、小さい方を見つける方法を知りたいのですが。私は初心者だから、もし私がAcumulatorを使うべきかどうか、そしてそれが8ビットのレジスタだと考えると、Stackは各値に対してレジスタのペアを使います。あなたが私を助けることができれば感謝します、ありがとうございます! インテル構文

    0

    2答えて

    私が理解している限り(私が間違っていると私を修正します)、コンパイラの出力は、使用されるアーキテクチャのバージョン、コンパイラ、およびオペレーティングシステムによって異なります。 私は、ubuntuリリース16.04 x84-64を使用し、gccバージョン5.4(または他のOS、arch、コンパイラの組み合わせなど)でcファイルをコンパイルしています。 今まで理解してきたように、同じcファイルをコ

    0

    1答えて

    こんにちは私は実行を停止しませんこのコードを持っていた私はなぜ分かりません。助言がありますか? LEA R1, SOURCE LEA R2, DEST LOOP: LDR R0, R1, #0 STR R2, R0, #0 BRz DONE ADD R1, R1, #1 ADD R2, R2, #1 BRnzp LOOP DONE: LEA R0, DEST TRAP x22 ;

    0

    1答えて

    私はollydbとチートエンジンを使用してC++プログラムを修正しようとしています。 メモリアドレスを削除して番号0(または同じ結果で終わるもの)に置き換えたいとします。 01411E38 |. 8BD0 MOV EDX,EAX 01411E3A 83F2 00 XOR EDX,00000000 01411E3D 90 NOP 01411E3E 90 NOP 01411

    -4

    2答えて

    'ecx'には「abc」のような文字列があります。 のmovああ、バイトPTR [ECX + 0] 楽章ら、バイトPTR [ECX + 1] それは正確に何をしますか?それは 'ああ'のようなものです。私は "a"という文字を持っていて、 "al"には "b"という文字がありますか?