問題タブ [cmp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
assembly - アセンブリ cmp 命令
次のcmp命令は私を混乱させます:
%eax,0x18(%esp,%ebx,4)
arg1 と arg2 を比較していることは知っていますが、arg2 で括弧内のものと正確に何が起こっているのでしょうか?
ありがとう
bash - Bash、cmpを使用した場合にファイルが同じであることを出力する方法
cmp file1 file2
ファイルが同じ場合は何もしません。では、シェルスクリプトでファイルが同じであることをどのように出力しますか?
string - 文字列に対する IA32 アセンブリ cmp
一部の IA32 アセンブリ コードのリバース エンジニアリングに問題があります。つまり、これらの行:
ここでは、$edx
レジスタは文字列を保持しており、$eax
レジスタは同じ文字列を保持していますが、インデックス 0 の文字のみが削除されています。
ステップ 214の命令から混乱が生じsub
ます。文字列の先頭にある 2 つの文字が何であっても、1 になるようです。文字列の長さを比較しているのでしょうか。
さらに、2 つの文字列の呼び出しcmp
は何を比較しますか?
どうもありがとう!
編集:
前に、2 つの文字列が cmp されています。
c - cmp のアセンブリから実際のアドレスを計算する
コードをデバッグするために gdb を使用していますが、まだ初心者な
ので
、実際のアドレスを取得する方法を知りたいと思っていました
。
%eax と比較されているものを知りたい、つまり 0x4(%rbp,%rbx,4) の内容を知りたい
assembly - CMP ECX、ECX を使用する理由
いくつかのアセンブリを調べていると、ラインが見えます
A==A が常に真であるとは限らないので、これは私には意味がありません。(再帰性)
これが役立つかどうかはわかりませんが、次のコンテキストで使用されます。
assembly - なぜキャリーフラグがここに設定されたのですか?
これらのフラグ、特にキャリーとオーバーフロー フラグを使って多くの練習をしているサイトを誰か教えてもらえないかと思っていました。
とにかく私の質問はこれです。
講義ノートを見ていると、5ビットの比較が表示されます
Cmp $12、$6 になる
00110 ~ 01100 に変更可能
キャリー フラグ CF = 1 およびオーバーフロー フラグ OF = 0
Cmp $-6, $-12 は 10100 - 11010 となり、
CF =1 、オーバーフローフラグ OF = 0
オーバーフロー フラグが 0 に設定されていることを理解していると思います。これは、これらの小さな数の減算 (または見方によっては加算) により、2 ^ 5 の範囲の数値を超えることのない小さな数値が得られるためです。
キャリーはどうですか?最後のビットが最後の列/ビットから1を持ち越されたことを意味すると思いましたが、それはキャリーフラグですよね?
私が意味するのは、それが次のようなものだった場合です
それはキャリーフラグが正しく設定される方法ですか?1 は左から 2 番目の 1+1 から来ました。
私の 2 つの例では、これらは一番左の列の上にある 1 ではありません。
どうしたの?
ありがとう。
python-2.7 - Delete Duplicate records in CSV file in python 2.7
My INPUT file:
#xA;Output file should be:
#xA;Means my output file should be free from duplicates. I should delete the record which is repeating based on the column 1.
Code I tried:
#xA;Output I got:
#xA;What am I doing wrong?
assembly - cmpl と jge が期待どおりに動作しない、x86
次の単純な C コードを翻訳する必要があります。
そして、それを次の GNU x86 アセンブリ コードに変換するコンパイラを作成しました。(printi と prints は、翻訳後にリンクするライブラリ関数です)。
ただし、プログラムは何も出力しません。whileのチェック式のあたりでどこか間違えたようです。
命令cmpl %edx, %eax
は、フラグを 0 ~ 5、つまり -5 に設定する必要があります。したがって、jge はそれを .CH1 に分岐しません。したがって-16(%ebp)
、1 として設定する必要があり、.CH2 に入る必要があります。1!=0 として、L1 に入る必要があります。どこが間違っているのかわかりません。
arm - ARMで分岐せずに2つのレジスタを比較し、より大きい場合にアクションを実行する方法
私ができることがわかっている2つのレジスタr5とr6を比較しようとしています
私がやろうとしていることは
if R7 > 1 thenADD R8, R8, #1
コードの異なるセクションでこれを複数回使用するため、分岐なし
より大きい場合、または分岐後に前の位置に戻ってカウントに追加できる場合は、BGT が分岐することを知っていますか?