2次元配列をx86アセンブリ言語でトラバースする方法を理解できません。私は少しの理解を欠いている。これは私がこれまで持っていたものです。2次元配列を横切る
の場合:「第二オペランドの違法レジスタEBX」
問題は、私が取得していますエラーが とも である「第二オペランドの非定数式」//offset
ラインについては//offset
と//moving through array
と行です次の行は、私はエラー 「EDXを:違法レジスタを第二オペランドに」取得
mov esi, dim
mul esi
mov eax, 0 // row index
mov ebx, 0 // column index
mov ecx, dim
StartFor:
cmp ecx, esi
jge EndFor
lea edi, image;
mov edx, [eax *dim + ebx] // offset
mov dl, byte ptr [edi + esi*edx] // moving through array
mov edx, edi
and edx, 0x80
cmp edx, 0x00
jne OverThreshold
mov edx, 0xFF
OverThreshold:
mov edx, 0x0
を実行していますか?実際の問題は何か説明できますか? – Blorgbeard
それはちょうど無関係だった。私は私の問題をよりよく説明するために投稿を編集しました。申し訳ありません、新しいポスター – user6313136
OKです。私はあなたがオフセットで多くの数学をすることはできないと思います。 IIRCでは、[REGISTER + CONSTANT_OFFSET]に制限されています。オフセットを手動で計算する必要があるかもしれません(ADDとMUL)。 – Blorgbeard