問題タブ [addressing-mode]
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.
gcc - x86-64 で gcc を使用して、さまざまな変数に対して RIP 相対または絶対アドレス指定を選択できますか?
2 つの異なるデータ セクション (A と B) に異なる変数を配置する独自のリンク スクリプトを作成します。
A はゼロアドレスにリンクされています。B はコードの近くで、高アドレス空間 (x86-64 の通常の絶対アドレス指定では使用できない 4G より高い) にリンクされています。
A は絶対アドレス指定でアクセスできますが、RIP 相対ではアクセスできません。B は RIP 相対アドレッシングを介してアクセスできますが、絶対アクセスはできません。
私の質問: gcc のさまざまな変数に対して RIP 相対または絶対アドレス指定を選択する方法はありますか? おそらく、次のような注釈が付いてい#pragmaますか?
assembly - アドレッシング モードでレジスタを減算できませんか?
私は PC Assembly Language を読み終え、Assembly での RC4 暗号化の実装に取り組んでいました。私が理解できないのは、その理由です
動作しますが
しません。インライン アセンブラから、次のエラー メッセージが表示されます。
「第 2 オペランド」の非定数式
どういう意味ですか?前もって感謝します。
cpu-architecture - アドレッシング モードに使用される用語。[インテル 8085]
私が取り組んでいるプロセッサのドキュメントでは、次のように述べています。
使用可能なオペランド アドレス指定モードは、暗示、レジスタ、即時、直接、およびレジスタ間接です (メモリへの 16 ビット ポインタとして BC、DE、および HL レジスタ ペアを使用)。
誰かが素人の言葉でこれらのアドレス指定モードの違いを説明してもらえますか、またはおそらく私が学ぶことができるリンクを投稿できますか?
どうもありがとう。
assembly - `movl(%eax)、%eax`の括弧はどういう意味ですか?
私は十分にグーグルで検索しましたが、角かっこが何()を意味するのか理解できませんでした。また、私はいくつかの構文を次のように見ていますmovl 8(%ebp), %eax
誰かが私にいくつかの良い参考文献を提案できますか?Googleの上位20件の結果から何も見つかりませんでした。
assembly - x86レジスタ名、アドレッシングモード、変位、およびストレージ
私が学んでいる組み立てについていくつか質問があり、混乱しています。
bxandbpとssandの違いは何spですか?本はそれbxがベースレジスタであり、bpベースポインタであると言っています。これは、それらが同じものであることを意味しますか?mov ax, bx、、、mov ax, [bx]とmov ax, bpの違いは何mov ax, [bp]ですか?dispインデックス付きアドレッシングモードとはどういう意味ですか?たとえばmov al, disp[bx]?またはmov al, disp[si]?この本はの意味を説明していませんdisp。レジスタはRAMではなくCPUにありますか?
私の英語を許してください、それは私の最初の言語ではありません。
assembly - アセンブリ アドレッシング モード
誰かが次の2つの違いを説明できますか? アドレッシング モードの背後にある概念を理解するのは少し難しいと思います
本当にありがとう!
assembly - このx86Add命令が何をしているのか正確にはわかりません
addこの命令が何をしているのか正確にはわかりません:
もしそうなら:
rbxの内容との内容を追加してeax、に保存し直すことはわかっていeaxます。しかし、それ0x0(%rbp,%rbx,4)は私を失望させています。
assembly - アセンブリ括弧内の*すべての*可能な算術の可能性は何ですか?
x86asmからCコードエミュレーターを作成しています。パーサーの場合はブラケット解析までです。
QWORD PTR [に]
DWORD PTR [に]
WORD PTR [に]
BYTE PTR [に]
MOV X, [に]
LEA X, [に]
今のところ無視します。
MMWORD PTR[]
XMMWORD PTR[]
FWORD PTR []
TBYTE PTR []
角かっこに入れることができるすべての可能な数学算術が何であるか知りたいです
私が遭遇した最も複雑なものは..
[EBP+ECX*4-E0]
私が解析しなければならない理由は、に変換する E0ためです0x000000E040x00000004
私の知る限り、、、+可能である-か、可能であるか、またはドットはどうですか??*\/.
[]内部計算を取得するためにブラケットを含むすべての命令を分割する最良の方法を考えます。次に、内部の数学を1文字の区切り文字で分割し+-*ます。
私はそれらすべてを確実に手に入れたいですか?これらで分割は可能ですか?XOR / OR / AND / NOTはどうですか?
assembly - ds:si と es:di はアセンブリで何を意味しますか?
movsb (move string, bytes) 命令は、アドレス ds:si でバイトをフェッチし、アドレス es:di に格納してから、si レジスタと di レジスタを 1 ずつインクリメントまたはデクリメントします。
私は esi,si と edi,di レジスタを知っています。
しかしそうではなくds:si、es:di
彼らはどういう意味ですか?
assembly - ベースアドレスなしのIA32インデックス付きアドレッシングモード
この構文はどういう意味ですか?欠落しているベースアドレスについて具体的にわかりません