16-разрядные режимы адресации NASM x86

У меня возникают проблемы с указанием адреса и записи в моем случае переменной байта по размеру. Это дает мне ошибку "error: invalid effective address":

mov byte[AX], byte 0x0

После некоторого следа и ошибки я тестировал то же самое, но с EAX. Это просто отлично:

mov byte[EAX], byte 0x0

Что мне здесь не хватает?

Ответ 1

[AX] - недопустимая спецификация операнда памяти.

Допустимые 16-битные версии::

[constant]  
[BX]  
[SI]  
[DI]  
[BX+constant]  
[BP+constant]  
[SI+constant]  
[DI+constant]  
[BX+SI]  
[BX+DI]  
[BP+SI]  
[BP+DI]  
[BX+SI+constant]  
[BX+DI+constant]  
[BP+SI+constant]  
[BP+DI+constant]  

[BP] формально недействителен, но многие ассемблеры спокойно преобразуют его в [BP + 0].

См. руководство по процессору для кодировок операндов памяти и байтов ModR/M и SIB.