2016-11-20 6 views
0

私はこのコードをemu8086に書いていますが、それはエミュレータではうまくいきますが、NASMでコンパイルしようとしているときにエラーが発生します。NASMは私のアセンブリコードをコンパイルしていません

add bx,[3565] 
sub bx,0xcc 
mov [bx],0CCh 
+4

確かに、NASMはエラーのコード行を教えてくれましたか? 'mov [bx]、0CCh'はサイズ指定子を必要とします。 'movバイト[bx]、0CCh '。また、 'add bx、[3565]'は奇妙に見えます。なぜあなたはオフセット3565でメモリから読み込もうとしますか? – Michael

答えて

0

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 

。デバッガで開くだけで、なぜか理解できます。

関連する問題