0
私はこのコードをemu8086に書いていますが、それはエミュレータではうまくいきますが、NASMでコンパイルしようとしているときにエラーが発生します。NASMは私のアセンブリコードをコンパイルしていません
add bx,[3565]
sub bx,0xcc
mov [bx],0CCh
私はこのコードをemu8086に書いていますが、それはエミュレータではうまくいきますが、NASMでコンパイルしようとしているときにエラーが発生します。NASMは私のアセンブリコードをコンパイルしていません
add bx,[3565]
sub bx,0xcc
mov [bx],0CCh
NASMは、mov [bx],0CCh
のような行の意味を理解できません。明らかに、 これは何かを0CChに設定します。しかし、bxが1バイトの を指し示すようにしたいですか?これは、NASMのかなり自己説明的な error: operation size not specified
として現れます。以下に示すようにあなたは、タイプを指定してエラーを回避することができます:それはそれはOK ...もちろん、それがあるとして、それを実行しようとしていない、それはEXCEPTION_ACCESS_VIOLATION
を作るよ組み立てたい
SECTION .text
global start
start:
add bx,[3565]
sub bx,0xcc
mov byte [bx],0CCh
。デバッガで開くだけで、なぜか理解できます。
確かに、NASMはエラーのコード行を教えてくれましたか? 'mov [bx]、0CCh'はサイズ指定子を必要とします。 'movバイト[bx]、0CCh '。また、 'add bx、[3565]'は奇妙に見えます。なぜあなたはオフセット3565でメモリから読み込もうとしますか? – Michael