Предположим,
bx = 0xF000
bl = 0x00 (duh)
cl = 0x10
Прямая адресация
mov byte ptr [300], bl
Записывает содержимое bl (0) в адрес 300.
косвенная адресация
mov byte ptr [bx], cl
записывает 0x10 в адрес 0xF000
косвенная адресация с прямым смещением
mov byte ptr[bx+300], cl
записывает 0x10 вадрес 0xF12C (300 десятичный = 12C шестнадцатеричный)
x86 Имеет много других режимов адресации, см .: http://www.ic.unicamp.br/~celio/mc404s2-03/addr_modes/intel_addr.html
Для дальнейшего усложнения, это объяснение действительно для IntelСинтаксис ассемблера, в AT & T, а также синтаксис GAS, источник и назначение поменялись местами.
Это не должно беспокоить вас слишком много, потому что здравомыслящие люди используют только синтаксис Intel, с ним гораздо проще работать.