x86 アセンブリ (MASM) で 2 つの大きな数値を加算するサブルーチンを作成しようとしています。数値は si レジスタと di レジスタによってポイントされ、関数は右から左に反復し、各データ ワードを追加してキャリーを渡し、結果を di に保存する必要があります。追加するデータ ワードの数は、前のコード チャンクによって決まります。
...
mov cx, ( number of data words to add )
adding:
mov bx,cx ;copy the loop counter to bx
lea ax,[di+2*bx] ;move ax to the destination word
adc ax,[si+2*bx] ;add the source word into the destination word
loop adding ;main sub loop
...
残念ながら、このコードをコンパイルしようとすると、エラー A2032: lea と adc の両方の行でレジスタの無効な使用が発生します。使用している構文の何が問題になっていますか?