私はアセンブリを学習しようとしているのですが (我慢してください)、次の行でコンパイル エラーが発生します。
mov byte [t_last], [t_cur]
エラーは
error: invalid combination of opcode and operands
このエラーの原因は、単に mov 命令が 2 つのメモリ アドレス間を移動できないことにあると思われますが、30 分間 Google 検索しても確認できませんでした。これは事実でしょうか?
また、私が正しいと仮定すると、メモリをコピーするための中間点としてレジスタを使用する必要があることを意味します。
mov cl, [t_cur]
mov [t_last], cl
使用が推奨されるレジスタは何ですか (または代わりにスタックを使用する必要がありますか)?
ベストアンサー1
あなたの疑いは正しいです、記憶から記憶へ移動することはできません。
汎用レジスタであればどれでも構いません。レジスタの内容が不明な場合は、レジスタをプッシュし、プッシュが完了したら元に戻すことを忘れないでください。