2016-11-15 6 views
0

にレジスタからの移動私は変数のx86

EDX

EBP

を使用して互いに加算ゲットsbytesを含む配列を有します

レジスタ。

コードは、今、私は剣を開催するtotal_sumという変数に

EBP

を移動しようとしています除き、正常に動作します。しかし、私はそれを行う方法がわかりません。

私は取得していますエラーが

エラーA2022です:命令のオペランドは私が間に変換しようとしていますフォーマットが異なっていることを意味すると理解同じSIZ

でなければなりません。

誰かが正しい方向に向けるのに役立つでしょうか?

mov esi, OFFSET array 
mov ecx, LENGTHOF array 
mov total_sum, 0 
mov ebp,0 

L1: 
movsx edx, byte ptr [esi] 
add ebp, edx 
inc esi 
loop L1 

mov eax, ebp 
call WriteInt 
call Crlf 

mov [total_sum], ebp 

答えて

0
mov byte ptr [total_sum], ebp 

変数はバイトとして宣言され、レジスタが4バイトである:ここ

は、関連するコードです。アセンブラは、レジスタを切り捨てるか、ラベルtotal_sumで始まる4バイトを使用することを意味しているか分かりません。

+0

これはすべて実行する必要がありますか?私はそれを試み、問題は残った。 –

+0

次に、変数をDWORDとして宣言し、 "byte ptr"を削除します。 –

+0

それを剣として保つ方法はありますか? –

関連する問題