このアドレス構成を使用したいのですが、これは遠い記憶に基づいてサポートされており、どこを見てもサポートされていますが、何らかの理由でコンパイラ/アセンブラが混乱します。
mov rax, [rsi+rcx*8]
コンパイラは、* に対してエラーをスローします。
error: unknown token in expression mov rax, [rsi+rcx*8]
^
これらの指示は完全に受け入れられます。
mov rax, [rsi+rcx];
mov rax, [rsi+rcx+8]
では、コンパイラがスケールをサポートしていないか (まるで?)、スケールが 64 ビット モードでサポートされていないのでしょうか?
これはXcode 4.6で、おそらくLLVMを使用していますが、これはフロッピードライブの時代以来初めてのアセンブラープロジェクトなので、誰が解析しているのかわかりません。確かに .intel_syntax が指定されています。asm はインラインではなく .s ファイルにあります。
x86_64 モードが問題なのでしょうか? Intel のドキュメントから、「64 ビット アドレッシングは既存の 32 ビット ModR/M および SIB エンコーディングを使用する」とありますが、SIB バイトのスケール ビットは無視されますか?
どうもありがとう